C# 异常类(Exception)

在这里,您将了解C#中的内置异常类。

C#.NET为每个可能的错误包括内置的异常类。Exception类是所有异常类的基类。

以下是.NET中异常类的层次结构:

.NET中的异常类

在上图中,Exception类是SystemException和ApplicationException类的基类。的SystemException类是所有可在程序的执行期间发生异常的基类。本ApplicationException类应该派生来创建自己的自定义异常类。可以为违反业务规则或其他与应用程序相关的错误创建自定义类。

下图显示了在NullReferenceException运行时访问null对象属性时,如何在Visual Studio调试模式下引发。

NullReferenceException

内置异常类

下表列出了.NET中重要的内置异常类。

异常类别描述
ArgumentException当传递给方法的非null参数无效时引发。
ArgumentNullException在将null参数传递给方法时引发。
ArgumentOutOfRangeException当参数值超出有效值范围时引发。
DivideByZeroException当整数值除以零时引发。
FileNotFoundException在指定位置不存在物理文件时引发。
FormatException当值的格式不适合通过转换方法(如Parse)从字符串转换时引发。
IndexOutOfRangeException当数组索引超出数组或集合的下限或上限时引发。
InvalidOperationException在对象的当前状态下方法调用无效时引发。
KeyNotFoundException在不存在用于访问集合中成员的指定键时引发。
NotSupportedException在不支持方法或操作时引发。
NullReferenceException程序访问空对象成员时引发。
OverflowException在算术,强制转换或转换操作导致溢出时引发。
OutOfMemoryException当程序没有足够的内存来执行代码时引发。
StackOverflowException当内存中的堆栈溢出时引发。
TimeoutException分配给操作的时间间隔已到期。

发生错误时,应用程序代码或默认处理程序将处理异常。在下一部分中了解如何处理异常情况。