C#学习笔记之十一
在.NET Framework中用Exception类表示基类异常,但是任何从Object类派生的对象都可以作为异常引发;一般情况下如果异常没有被程序自身捕获,那么C#运行时系统就会捕获该异常;
System名称空间定义的标准异常:
异常 含义 ArrayTypeMismatchException 所存储的值类型与数组的类型不兼容 DivideByZeroException 被零除 IndexOutOfRangeException 数组索引超出边界 InvalidCastException 运行时强制转换无效 OutOfMemoryException 没有足够空间内存继续执行 OverflowException 运算溢出 NullReferenceException 试图对空引用进行操作 异常处理的四个关键字:try、catch、throw、finally;
try与catch:try{……}catch{……}catch{……};
用throw抛出异常;用于转到外层catch进行处理;
finally提供了一种保证资源清理或资源恢复的机制,一般跟在catch语句块后;
自定义异常类有如下规则:避免使用很深的异常层次结构;尽量从System.Exception或其他常见基本异常之一派生;名称尽量使用Exception结尾;一定要在所有异常上都提供常见构造函数;详细编写自定义异常的相关信息;
自 定义异常形式:public class ABCException:ApplicationException{ public ABCException(string message,Exception inner):base(message,inner){……} };
CHECKED和UNCHECKED关键字,checked用于检测表达式中是否产生溢出,如果希望忽略溢出,则用unchecked;并且都具备表达式或语句块形式;