19.1异常处理的演变
19.2异常处理机制
19.3符合公共语言规范(CLS)的异常与不符合CLS的异常
19.4异常的准确定以
19.5System.Exception类
19.6FCL中预定义的异常类
MSCorlib.dll中包含了System.Exception和其它许多异常的定义,其它程序集也定义了许多异常。
19.7抛出异常
抛出异常需要考虑两个问题:
1. 异常类型:派生自System.Exception
2. 异常原因。
19.8定义自己的异常类
19.9如何正确的使用异常
19.10 性能考虑
笔者认为异常处理的好处远远超过它所带来的任何性能损失。
19.11未处理异常
如果没有catch块与异常类型匹配,会出现未处理异常。
出现未处理异常时,程序会弹出对应的消息框,用户可以选择向Microsoft发送异常/不发送异常。
19.12异常堆栈跟踪
catch块可以读取System.Exception的StackTrace属性获取异常的堆栈跟踪。
19.13调试异常使用VS提供的“调试.异常”菜单项