目录
什么是异常
try语句
异常类
catch子句
catch子句段
finally块
为异常寻找处理程序
更进一步搜索
一般法则
抛出异常
不带异常对象的抛出
什么是异常
异常是程序运行时错误,它违反了系统约束或应用程序约束,或出现了在正常操作时未预料的情况。
如果程序没有提供处理异常的代码,系统会挂起这个程序
try语句
异常类
异常对象含有只读属性,带有导致该异常的信息
catch子句
一般catch子句能接受任何异常,但不能确定引发异常的类型。这只允许对任何可能发生的异常的普通处理和清理
特定catch子句形式把一个异常类的名称作为参数。它匹配该指定类或派生自它的异常类的异常
带对象的特定catch子句提供关于异常的最多信息,它匹配该指定类的异常,或派生自它的异常类的异常,它还给出一个异常实例(称为异常变量),是一个对CLR创建的异常对象的引用。可以在catch子句块内部访问异常变量的属性,以获取关于引起的异常的详细信息
catch子句段
catch子句段可以包含多个catch子句
当异常发生时,系统按顺序搜索catch子句的列表,第一个匹配该异常对象类型的catch子句被执行。 catch子句的排序有两个重要的规则:
finally块
如果程序的控制流进入了一个带finally块的try语句,那么finally始终会被执行
即使try块中有return语句,finally块也会执行
为异常寻找处理程序
当程序产生一个异常时,系统查看该程序是否为它提供了一个处理代码
更进一步搜索
如果异常在一个没有被try语句保护的代码段中产生,或如果try语句没有匹配的异常处理程序,系统将不得不更进一步寻找匹配的处理代码。为此它会按顺序搜索调用栈,一看看是否存在带匹配的处理程序的封装try块
一般法则
抛出异常
可以使用throw语句使代码显式的引发一个异常,throw 语句的语法如下:
throw ExceptionObject;
不带异常对象的抛出