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

时间:2013-01-11 09:38:37

标签: c# .net entity-framework exception

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

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

2 个答案:

答案 0 :(得分:7)

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

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

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

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

答案 1 :(得分:0)

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

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