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