




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java语言程序设计 第六章 异常处理和递归,讲授人:傅晓阳 教授,,DavidFu,上章回顾,String与StringBuffer的区别是什么? 举例说明String中处理字符串的成员方法有哪些?,,DavidFu,本章课程纲要,抛出异常与自定义异常处理类,异常处理类型与捕获异常结构,,DavidFu,本课程纲要,捕获异常,异常处理的类型 ,异常处理类型,,DavidFu,异常处理的类型,Java异常类结构,,DavidFu,异常处理的类型,Error类及其子类主要用来描述一些很难恢复的错误,如内存越界。这类错误一般不期望用户程序来处理,即使程序员有能力处理这种错误,也还是交给系统处理为好。 RuntimeException用来描述程序员在设计或编写过程中不正确所引发的异常,如数组越界、错误的强制类型转换等。,,DavidFu,异常处理的类型,在Java中Error和RuntimeException及其子类又称为非检查异常(unchecked),对于这类异常,编译器不做检查 在编译时检查是否会出现异常情况的称为受检异常(checked)。 对于任何方法来说,如果它调用的方法抛出了某一检查类型的异常,该调用者就必需捕获这一异常或者也声明抛出该类异常(或该异常的父类),编译器对此要进行检查。,,DavidFu,异常处理的类型非检查异常,,DavidFu,异常处理的类型非检查异常,,DavidFu,异常处理的类型非检查异常,,DavidFu,异常处理的类型检查异常,,DavidFu,异常处理的类型检查异常,,DavidFu,本课程纲要,抛出异常,捕获异常,异常处理的类型,异常处理类型,,DavidFu,异常处理结构,抛出异常 捕获异常 异常处理结构 trycatch(单catch) trycatch(多catch) trycatchfinally,,DavidFu,异常处理结构,trycatch语句块 trycatch语句块分为try语句块和catch语句块,其结构如下: try /try语句块,可能产生异常的程序代码 catch(异常类型 e) / catch语句块,对异常进行处理 参见实例5-2 TestTry.java,,DavidFu,异常处理结构,多catch语句块 try /try语句块,可能产生异常的程序代码 catch(异常类型1 e1) / catch语句块,对异常进行处理 catch(异常类型2 e2) / catch语句块,对异常进行处理 catch(异常类型n en) /捕获并处理异常 / catch语句块,对异常进行处理 参见实例5-3 TestTryMul,,DavidFu,异常处理结构,trycatchfinally语句块 try /try语句块,可能产生异常的程序代码 catch(异常类型1 e1) / catch语句块,对异常进行处理 catch(异常类型n en) / catch语句块,对异常进行处理 finally /无论异常是否发生,try/catch后一定要执行的语句 参见实例5-4 TestFinally.java,,DavidFu,本章课程纲要,抛出异常与自定义异常处理类,异常处理类型与捕获异常结构,,DavidFu,本课程纲要,自定义异常处理类,抛出异常,抛出异常与自定义异常处理类,综合练习,,DavidFu,抛出异常,throws语句间接抛出异常 在方法的定义中利用throws关键字声明异常类型而间接抛出异常。 throws语句形式如下: 方法说明throws 异常类列表 声明语句 执行语句 参见实例5-5 TestThrows,,DavidFu,抛出异常,throw语句抛出异常 throw语句形式如下: throw 异常类对象 所有生成的异常对象必须是Throwable或其子类的实例 含有throw语句的方法,需要在方法头定义中增加以下内容: 访问控制说明符 类型 方法名称(参数列表)throws 异常类名列表 方法体 参见实例5-6TestThrowException,,DavidFu,本课程纲要,自定义异常处理类,抛出异常,抛出异常与自定义异常处理类,综合练习,,DavidFu,自定义异常处理类,自定义异常类必须是Exception类的子类。一般的声明形式如下: public Class MyExceptionName extends Exception public MyExceptionName ( ) super(“Some string explaining the exception”); ,,DavidFu,自定义异常处理类,实例5-7声明当数组下标越界时抛出的异常类IndexException public class IndexException extends Exception public IndexException() super(“数组下标越界!“); ,,DavidFu,自定义异常处理类,在方法中抛出自定义异常处理类的异常 public static void printarray(int b,int m) throws IndexException if(m=b.length) throw new IndexException(); System.out.print(“ “+bm); ,,DavidFu,自定义异常处理类,在异常捕获结构中捕获异常 try catch() catch(IndexException e) System.out.println(e.toString(); System.exit(-1); ,,DavidFu,本课程纲要,自定义异常处理类,抛出异常,抛出异常与自定义异常处理类,综合练习,,DavidFu,综合练习,类的成员有哪些?接口是否是类的成员? 控制封装性的四个访问修饰符是什么?封装严格程度的顺序是什么?给出类成员访问控制模式以及方式。 面向对象编程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论