如果Db中不存在请求的实体,我应该抛出哪个异常?

pen*_*ake 12 .net c# entity-framework exception

想象一种方法,它尝试在业务逻辑方面(针对特定情况)检索Db中应该存在的实体.

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

Ern*_*rno 7

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

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

您可能会考虑的第一件事是它是否是功能错误(如果用户纠正某事)或技术错误(开发人员是否犯了错误).

您应该考虑的另一件事是该方法的调用者自然是什么.