首页 > 解决方案 > 为什么 NoResultException 是系统异常?

问题描述

为什么 EJB 权力决定NoResultException由 JPA 的getSingleResult()方法产生的结果应该是系统异常而不是典型的应用程序异常?

该方法本getSingleResult()可以用于各种各样的情况,但它却变成了一种在 99% 的情况下使用起来很痛苦的方法:我现在必须在任何地方都捕捉到它,而不是让这个异常冒泡要么返回 null 要么抛出我自己的自定义应用程序异常,因为默认情况下不存在等效的应用程序异常。这种设计似乎严重不考虑日常使用,并且还吞噬了一个我本可以使用的非常好的异常名称。

NoResultException系统异常甚至代表什么场景?资源不存在是系统范围问题的假设似乎与 RESTful 设计对立。

标签: javarestjpaejb

解决方案


推荐阅读