我想了解 System.ApplicationException 和 System.Exception 之间的区别。
有人能够解释一下吗?
最初,它们旨在区分BCL定义和用户定义的异常。ApplicationException被设计为所有用户定义异常的基类。想法是它将为您提供一种清晰的方式来区分框架异常和自定义异常。
不幸的是,从一开始就没有执行这个策略,因此BCL中存在许多违反此规则的矛盾之处。目前的建议是不要从这些异常继承。
以下是有关这个主题的不错的博客文章:
所有的异常都源自于Exception基类。异常可以由程序生成,也可以由系统生成。应用程序异常是所有应用程序特定异常类的基类。它派生自Exception但不提供任何扩展功能。您应该从Application Exception派生自定义的应用程序异常。当我们想要定义用户定义的异常时,使用应用程序异常。而系统异常则是由.NET定义的所有异常。