编译器生成的异常(C# 编程指南)

更新:2007 年 11 月

有些异常在基本操作失败时由 .NET Framework 的公共语言运行时 (CLR) 自动引发。下表列出了这些异常和它们的错误条件。

异常

说明

ArithmeticException

在算术运算期间发生的异常(如 DivideByZeroExceptionOverflowException)的基类。

ArrayTypeMismatchException

当数组存储给定的元素时,如果由于该元素的实际类型与数组的实际类型不兼容而导致存储失败,就会引发此异常。

DivideByZeroException

在试图用零除整数值时引发。

IndexOutOfRangeException

在试图为数组设置小于零或超出数组界限的索引时引发。

InvalidCastException

当从基类型到接口或派生类型的显式转换在运行时失败时,就会引发此异常。

NullReferenceException

在尝试引用值为 null 的对象时引发。

OutOfMemoryException

在使用 new 运算符分配内存的尝试失败时引发。这表明可用于公共语言运行时的内存已耗尽。

OverflowException

在 checked 上下文中的算术运算溢出时引发。

StackOverflowException

当执行堆栈由于具有太多的挂起方法调用而耗尽时,就会引发此异常;这通常表明存在非常深的递归或无限递归。

TypeInitializationException

在静态构造函数引发异常并且不存在可以捕捉到它的兼容 catch 子句时引发。

请参见

概念

C# 编程指南

参考

异常和异常处理(C# 编程指南)

异常处理(C# 编程指南)

try-catch(C# 参考)

try-finally(C# 参考)

try-catch-finally(C# 参考)