Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java EntityNotFoundException是否应扩展Exception或RuntimeException?_Java_Exception_Runtimeexception - Fatal编程技术网

Java EntityNotFoundException是否应扩展Exception或RuntimeException?

Java EntityNotFoundException是否应扩展Exception或RuntimeException?,java,exception,runtimeexception,Java,Exception,Runtimeexception,我的应用程序服务中有一个方法,用于接收实体的id: Document doStuff(Long documentId); 在我的方法中,我检查传递的id是否与以前存储的实体匹配,如果不匹配,则抛出异常 现在,我的疑问是,这是com.application.exceptions.DocumentNotFoundException运行时异常还是异常 服务是否应该强制谁使用它来管理id错误的情况,或者它是隐含的?作为参考: 运行时异常(未检查的异常) RuntimeException类表示Jav

我的应用程序服务中有一个方法,用于接收实体的id

 Document doStuff(Long documentId);
在我的方法中,我检查传递的id是否与以前存储的实体匹配,如果不匹配,则抛出异常

现在,我的疑问是,这是
com.application.exceptions.DocumentNotFoundException
运行时异常还是
异常

服务是否应该强制谁使用它来管理id错误的情况,或者它是隐含的?

作为参考:

运行时异常(未检查的异常)

RuntimeException类表示Java虚拟机(在运行时)中发生的异常。一 运行时异常的示例是NullPointerException。检查运行时异常的成本往往超过捕获它的好处。如果一直试图捕获或指定所有代码,则会使代码无法读取和维护。编译器允许运行时异常未捕获和未指定。如果你 比如,您可以像捕获其他异常一样捕获这些异常。但是,您不必在“throws”子句中声明它,也不必在catch子句中捕捉它

此外,您可以创建自己的RuntimeException子类,这种方法可能是首选的,因为选中的异常会使方法复杂化 签名和签名可能很难遵循

为什么不建议捕获类型“异常”

Java中的异常处理本质上是多态的 也可以捕获或抛出其子类型,如IOException 类型IOException然后类型异常块将捕获整个异常,类型IOException块为 从未到达。为了捕获类型IOException并以与类型Exception不同的方式处理它,IOException 应该首先被抓住(记住,你不能让一个大篮子超过一个小篮子)

作为参考:

运行时异常(未检查的异常)

RuntimeException类表示Java虚拟机(在运行时)中发生的异常 运行时异常的示例为NullPointerException。检查运行时异常的成本通常大于捕获它的好处。始终尝试捕获或指定所有这些异常会使代码无法读取和维护。编译器允许运行时异常未捕获和未指定。如果 例如,您可以像捕获其他异常一样捕获这些异常。但是,您不必在“throws”子句中声明它或在catch子句中捕获它

此外,您可以创建自己的RuntimeException子类,这种方法可能是首选的,因为选中的异常会使方法复杂化 签名和签名可能很难遵循

为什么不建议捕获类型“异常”

Java中的异常处理本质上是多态的 也可以捕获或抛出其子类型,如IOException 类型IOException然后类型异常块将捕获整个异常,类型IOException块为 从未到达。为了捕获类型IOException并以与类型Exception不同的方式处理它,IOException 应该首先被抓住(记住,你不能让一个大篮子超过一个小篮子)

作为参考:

运行时异常(未检查的异常)

RuntimeException类表示Java虚拟机(在运行时)中发生的异常 运行时异常的示例为NullPointerException。检查运行时异常的成本通常大于捕获它的好处。始终尝试捕获或指定所有这些异常会使代码无法读取和维护。编译器允许运行时异常未捕获和未指定。如果 例如,您可以像捕获其他异常一样捕获这些异常。但是,您不必在“throws”子句中声明它或在catch子句中捕获它

此外,您可以创建自己的RuntimeException子类,这种方法可能是首选的,因为选中的异常会使方法复杂化 签名和签名可能很难遵循

为什么不建议捕获类型“异常”

Java中的异常处理本质上是多态的 也可以捕获或抛出其子类型,如IOException 类型IOException然后类型异常块将捕获整个异常,类型IOException块为 从未到达。为了捕获类型IOException并以与类型Exception不同的方式处理它,IOException 应该首先被抓住(记住,你不能让一个大篮子超过一个小篮子)

作为参考:

运行时异常(未检查的异常)

RuntimeException类表示Java虚拟机(在运行时)中发生的异常 运行时异常的示例为NullPointerException。检查运行时异常的成本通常大于捕获它的好处。始终尝试捕获或指定所有这些异常会使代码无法读取和维护。编译器允许运行时异常未捕获和未指定。如果 比如,你可以抓住这些
javax.persistence.PersistenceException 
java.lang.RuntimeException.