.net提供了大量与异常有关的类,用来处理异常,每一个异常类都表示一个异常,Exception类是所有异常的基类,异常类继承关系的层次结构图:
C#中所有的异常处理都被视为类,所有异常都是由System.Exception所派生的。程序运行出现错误时,系统或当前的应用程序通过引发包含有关该错误的异常来报告错误。异常基类派生了系统异常和自定义异常,程序中出现系统异常类中涉及的异常,如“试图用某个数字除以零时”,就会发生DivideByzeroException异常,显示该异常给出的错误信息。
程序中可能出现的异常种类繁多,.net不可能预定义所有的程序异常,程序员可以自己定义异常。自定义异常继承自System.ApplicationException类。
System.Exception类是所有异常类的基类,该基类的属性和方法是所有异常类共有的。了解基本非常重要。下表是Exception类的属性和方法。
System.Exception的其他常用属性如下:
属性
说明
Data
这个属性可以给异常添加键/值语句,以提供异常的额外信息。.NET Framework 2.0的一个新属性
HelpLink
链接到一个帮助文件上,以提供该异常的更多信息
InnerException
如果此异常是在catch块中抛出的,它就会包含把代码发送到catch块中的异常对象
Message
描述错误情况的文本
Source
导致异常的应用程序或对象名
StackTrace
堆栈上方法调用的信息,它有助于跟踪抛出异常的方法
TargetSite
描述抛出异常的方法的.NET反射对象