为什么EJB权力决定由JPA的NoResultException
方法产生的getSingleResult()
应该是系统异常而不是典型的应用程序异常?
方法getSingleResult()
可以用于各种各样的情况,但是却变成了在99%的情况下都很难使用的一种方法:不是让此异常冒出来,我现在必须随处捕获它,或者返回null或抛出我自己的自定义应用程序异常,因为默认情况下不存在等效的应用程序异常。这种设计似乎在日常使用中严重不足,并且还吞下了我本可以使用的非常好的异常名称。
以NoResultException
作为系统异常将代表什么情形?假设不存在的资源是系统范围的问题,这似乎与RESTful设计背道而驰。