如果请求的实体在数据库中不存在,我应该抛出哪个异常
本文关键字:我应该 异常 不存在 请求 实体 数据库 如果 | 更新日期: 2023-09-27 17:52:40
想象一个方法,它试图检索一个实体,该实体应该存在于数据库中,根据业务逻辑(对于特定情况)。
当我试图通过我的存储库从Db检索它,如果我回到null
,我应该抛出哪个异常?(我在想ObjectNotFoundException
)
有人可能会争论是否需要异常;为什么不返回一个空集合或null?
你应该使用的异常类型取决于你在应用程序中使用异常的方式。
您首先要考虑的是,这是一个功能错误(用户是否应该纠正某些错误)还是一个技术错误(开发人员是否犯了错误)。
对于这种情况,我不会抛出异常,而只是处理null
返回值。开始使用异常来控制应用程序流并不是一个好主意。
如果实体应该绝对在那里,那么你可以处理业务层的null
值并抛出自定义域异常,例如EntityNotFoundException
,但是,我不会把那种逻辑放在存储库级别。