从获得:在.NET解决方案创建的异常类时,什么是最好的做法System.Exception
还是从System.ApplicationException
?
根据Jeffery Richter的框架设计指南书中的说法:
System.ApplicationException
是一个不应该成为.NET框架一部分的类.
它意图具有一些含义,因为您可能会捕获"全部"应用程序异常,但未遵循该模式,因此它没有任何价值.
您应该从中派生自定义例外System.Exception
.
甚至MSDN现在都说要忽略ApplicationException
:
如果您正在设计需要创建自己的异常的应用程序,建议您从Exception类派生自定义异常.最初认为自定义异常应该来自ApplicationException类; 然而,在实践中,尚未发现这增加了重要价值.有关更多信息,请参阅处理异常的最佳实践.
http://msdn.microsoft.com/en-us/library/system.applicationexception.aspx
ApplicationException
被认为无用是一种强烈的,批判性的反对论点ApplicationException
.
Upshot:不要使用它.来源于Exception
.
框架的作者自己认为ApplicationException毫无价值:
http://blogs.msdn.com/kcwalina/archive/2006/06/23/644822.aspx
在这里有一个很好的跟进:
http://blogs.msdn.com/kcwalina/archive/2006/07/05/657268.aspx
如有疑问,请遵循他们的"框架设计指南"一书.
http://www.amazon.com/Framework-Design-Guidelines-Conventions-Development/dp/0321246756
这里将进一步讨论博客文章的主题.
RP