我正在构建一个应用程序服务层,其中一个方法接受实体的ID(整数)并返回引用的实体。尽管看起来很简单,但是在查看.NET异常的众多选项时,我不完全确定如果找不到具有给定ID的实体应该抛出哪个异常(我不想只返回null)。
有ObjectNotFoundException,但那在System.Data
命名空间中,这意味着它应该是ASP.NET特定的,而这不是。有NullReferenceException,但建议程序员不要抛出它,因为它是“内部”的,而且我也不确定在这种情况下是否完全正确。我不想抛出通用的Exception。那么,在这里抛出哪个具体的异常类最有意义?由于这是一个应用程序服务层方法(因此相当抽象),所以限制自己只使用System.SystemException命名空间中的异常和/或自定义异常是否是一个好主意?