C#程序设计12__异常处理.ppt
文本预览下载声明
第12章 异常处理 12.1 异常处理概述 12.2 常见的异常 12.3 异常处理的基本方法 12.4 用户自定义的异常 异常是一种封装了反常程序事件信息的对象,C#用异常来处理错误和反常情况。 当异常抛出时,当前函数的执行会停止,堆栈展开,直到找到正确的异常处理代码,异常处理代码就是处理异常的代码块。 如果异常得到处理,程序会解决问题并继续执行。即使程序不能继续执行,捕获异常也能使程序输出错误信息并安全地终止程序。 在C#中提供有很多的异常类,所有的异常类都是System.Exception类型或是从其派生的类型。 表12-1列出了System命名空间中许多常见的异常类。 12.3.1 try-catch语句 try块中包含可能会产生异常的语句。 catch从句捕捉并处理异常。 如果能确定在try语句块中可能发生的异常类型,那么catch语句可以捕捉相应的异常类型;如果事先并不知道try语句块中会引起哪一种异常,则在catch语句中可以忽略异常的类型。 如果是多个异常,可以用多个catch语句块: try { //try语句块 } catch(类型1 参数1) { //针对类型1的异常处理 } catch (类型2 参数2) { //针对类型2的异常处理 } … catch (类型n 参数n) { //针对类型n的异常处理 } 12.3.2 try-finally语句 如果程序更关心异常的清除而不是异常处理,那么最好使用try-finally语句。 该语句不仅抑制了异常信息,而且程序执行控制在任何情况下都会转换到finally语句块,即包含在finally块中的所有代码都会被执行。 尽管程序不能正常终止,但在finally块中可以为用户获取一些有用的异常信息。 12.3.3 try-catch-finally语句 应用程序对于错误最有可能的处理方法是合并前面两种异常处理技术——捕获、处理异常以及清除异常并继续执行应用程序。故此在程序中需要联合使用try-catch-finally语句,它能为用户处理所有的异常。 12.3.4 throw语句 throw语句的作用是抛出一个异常,它的语法为: throw 表达式; throw语句的表达式是可选的。带有表达式的throw语句将抛出一个计算该表达式之后得到的异常,但是该表达式的值必须是类System.Exception类型,或是该类派生类的类型。 如果表达式的值为null,那么将抛出一个NullReferenceException异常。 除了系统提供的异常外,用户还可以自定义异常。 要创建用户自定义的异常,必须首先声明它,声明的格式为: class 自定义异常名: Exception { } 然后,在catch语句块中创建自定义异常的处理方法,这一般只需一行代码即可。 再后,为了抛出自定义异常,需要使用关键字throw。其格式为: throw new 自定义异常名(); * *
显示全部