编写特定异常的最佳实践

Best practice for writing specific exceptions

编写自定义异常的最佳实践是什么 类?例如,如果我正在创建一个简单的业务应用程序,我是否应该为每个域对象(CustomerNotFoundException、EmployeeNotFoundException、ProductNotFoundException 等)创建一个异常?如果我这样做,它看起来很混乱。在我正在研究的书中的例子中,它们似乎总是有一个专门针对域对象的 'not found' 异常。但是当我阅读有关异常的讨论时,我觉得我不应该创建很多自定义异常。

还真是看情况。例如,在一个企业系统中,有很多人在同一个环境中工作 and/or,预计其他人可能会扩展您的代码或在其上构建,拥有不同的异常非常有用,可以提供更详细的信息您的代码的接口。另一方面,在使用静态代码库的小型系统上,它相当麻烦并且只会降低代码的透明度。一般来说,根据经验,您的代码应该自己记录 and/or 应该有详细的文档(最好包括源代码),以便其他人可以找到问题的根源,无论您是否有自定义异常。