C#中的内置异常类

本文关键字:异常 内置 | 更新日期: 2023-09-12 17:39:47

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

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

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

.NET 中的异常类

在上图中,Exception类是SystemException类和ApplicationException类的基类。SystemException类是 .NET Framework 中所有内置异常类的基类。

建议将ApplicationException作为所有自定义异常类的基类(如果不能使用系统异常类,并且需要新的异常类来处理业务规则冲突或其他与应用程序相关的错误,则应创建自定义例外类)。它旨在区分应用程序定义的异常与系统定义的异常。但是,Microsoft现在建议从Exception类而不是ApplicationException类派生自定义异常类。

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

NullReferenceException

内置异常类

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

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

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