可能重复:
Should I derive custom exceptions from Exception or ApplicationException in .NET?
我在MSDN上发现了两个有争议的想法。
如果您正在设计需要创建自己的异常的应用程序,请从ApplicationException类派生。
对于大多数应用程序,从Exception类派生自定义异常。
此外,当我为70-536进行一些练习测试时,出现了类似的问题,正确的答案标记为ApplicationException。
官方指南是什么?
答案 0 :(得分:6)
ApplicationException
是第一个建议,但过了一段时间MS决定它只是增加了继承深度而没有给出任何好处,因此他们将建议改为仅使用Exception
。
您可以在此博文中找到更多信息(包括解释理由的引用):http://blogs.msdn.com/b/kcwalina/archive/2006/06/23/644822.aspx
答案 1 :(得分:2)
好问题。简短的回答是ApplicationException
类非正式弃用/过时,原因有很多。 (主要的一个可能是异常类型应该/不需要指示源(这是Source
属性的用途。)
最初(.NET 1.x天,我相信),你打算从它派生所有自定义异常类,以区别于BCL异常,但这是后来(在我看来是正确的)被忽视。目前常见/良好的做法是直接从Exception
(或其他自定义类)派生所有自定义异常类。
答案 2 :(得分:1)