我在数据访问层有一些功能
public Order RetrieveById(int id)
public List<Order> RetrieveByStatus(OrderStatus status)
Run Code Online (Sandbox Code Playgroud)
现在我对异常引发有点困惑。
对于 RetrieveById 函数,小于 1 的 id 是无效 id,因此我想引发异常。我想为数据库中不存在的 Id 返回 null。然后感觉我太复杂了。
对于 RetrieveByStatus,当数据库中没有该状态的数据时,我想返回一个空列表。
但是我看到有些人在 RetrieveById 无法返回任何内容时引发异常,但 RetrieveByStatus 在没有记录时不应引发异常,或者应该吗?
有人可以帮我澄清这些概念吗?
在第一种情况下,我可能会出现异常并自行处理,而不是返回 null。如果您的第一个方法以将返回的对象保存到 Order 引用的方式使用,该怎么办? NullReferenceException抛出的可能性非常高,当有人尝试调用该对象的方法或属性时。
对于第二种方法,我会按照一些人的建议选择一个空列表。