C#异常处理子系统包括:
Try:需要异常机制的函数在其中运行
Catch:捕获异常
Throw:抛出异常
Finally:在try结束实现
C#异常主要在Exception类中,而在CLR机制中的异常问题则在SystemException中,俩者并无不同,只是为了标准化区别。
System命名空间定义的常用异常:
ArrayTypeMisatchExpection:所储存类型与数组的类型不兼容
DivideByZeroException:被零除
IndexOutOfRangeException:数组索引越界
InvalidCastException:运行时强制转换无效
OutOfMemoryException:没有足够的运行空间运行
OverflowExpection:运算溢出
NullRefernceException:空引用
派生异常类:
继承System命名空间的Exception可以自定义派生异常。
捕获派生异常,必须将最底层放在前面,基类放在最后面。这就避免了不必要的代码重复。
checked和uncheked关键字:
checked:检查是否溢出,如果有抛出异常。
unchecked:不检查。