想象一个方法,它尝试在业务逻辑方面(针对特定情况)检索Db中应该存在的实体。
当我尝试通过我的存储库从Db中检索它时,如果我回来null
,我应该抛出哪个异常? (我在想ObjectNotFoundException
)
答案 0 :(得分:7)
有人可能会争论是否需要例外;为什么不返回一个空集合或null?
您应该使用的Exception类型取决于您在应用程序中使用异常的方式。
您可能会考虑的第一件事是它是否是功能错误(如果用户纠正某事)或技术错误(开发人员是否犯了错误)。
您应该考虑的另一件事是该方法的调用者自然是什么。
答案 1 :(得分:0)
我不会为这种情况抛出异常,只需处理null
返回值。开始使用异常来控制应用程序流并不是一个好主意。
如果实体肯定在那里,那么您可以处理业务层中的null
值并抛出自定义域例外,例如EntityNotFoundException
但是,我不会将这种逻辑放在存储库级别。