14

想象一个方法,它试图检索一个实体,该实体根据业务逻辑(针对特定情况)应该存在于 Db 中。

当我尝试通过我的存储库从数据库中检索它时,如果我回来了null,我应该抛出哪个异常?(我在想ObjectNotFoundException

4

2 回答 2

7

人们可能会争论是否需要例外。为什么不返回一个空集合或 null?

您应该使用的异常类型取决于您在应用程序中使用异常的方式。

您可能会考虑的第一件事是它是功能错误(如果用户更正某些内容)还是技术错误(开发人员是否犯了错误)。

您应该考虑的另一件事是方法调用者的自然情况。

于 2013-01-11T09:41:51.520 回答
2

对于这种情况,我不会抛出异常,只需处理null返回值即可。开始使用异常来控制应用程序流并不是一个好主意。

如果实体确实应该存在,那么您可以处理null业务层中的值并抛出自定义域异常,例如EntityNotFoundException,但是,我不会将这种逻辑放在存储库级别。

于 2013-01-11T09:45:50.753 回答