English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

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할당된 작업 시간 간격이 만료되었습니다.

예외가 발생할 때, 애플리케이션 코드나 기본 처리기가 예외를 처리합니다. 다음 부분에서 예외 상황을 처리하는 방법을 배웁니다.