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