Java程序设计课件(高晓黎)第13章异常处理.ppt

Java程序设计课件(高晓黎)第13章异常处理.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本章知识重点 异常类 我们总是试图避免在软件程序中错误的发生,但是百分之百没有错误的程序是不存在的。无论怎样,如果我们能适当的处理错误,将会极大的改善程序的可读性、可靠性以及可维护性。Java编程语言使用异常来处理错误。这章主要讲述在什么时候和怎样使用异常来处理错误 异常处理程序的基本形式 method() throws ExceptionType2,ExceptionType3,……{ …… try { …… //程序块 } catch (ExceptionType1 e) { …… // 对ExceptionType1的处理 } catch (ExceptionType2 e) { …… // 对ExceptionType2的处理,处理了一部分, throw(e); //再抛出这个“异常”给上层的调用者 } …… finally {…… } } 异常对象 Java异常类的继承关系 Exception异常又分为RuntimeException和non-RuntimeException两大类异常。 异常实例 设定一个名称为isLegal的变量来检查数据是否合法,如果数据大于0时,返回合法值,否则视为不合法,抛出“异常”。 int isLegal(int dt) throws LowZeroException { //这种定义本文中均称为方法与“异常”通过throws建立了关联 if(dt=0){ return data; } else throw new LowZeroException(); } /*自已写的异常类,继承自Exception*/ class LowZeroException extends Exception { public LowZeroException(){ super(); } 异常的类别 异常的类别种类 异常的类别 无论是Java的API中定义的诸多异常类还是我们自己定义的异常类(自定义异常在下面本章后面有详细的说明),根据编译器对异常的检查情况,又可以分为可检测异常和不可检测异常两种 可检测异常 常见的可检测异常有: ClassNotFoundException;//没有找到指定类的定义 IOException;//指示产生某种输入/输出异常。 FileNotFoundException;//文件没有找到异常。 ArithmeticException 异常处理机制 捕获异常 抛出异常 创建自定义异常 异常处理的作用 捕获异常 Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally 捕获异常实例 抛出异常 若在try块中抛出的异常没有能够捕获它的catch块,或捕获这个异常但不想立即处理,则Java将退出这个方法,并将其返回到上一级处理,如此不断地递归向上直到最外一级。同时,在方法的声明中要指定方法中可能产生的异常,使这个方法的调用者准备好处理这种异常的代码,这种类型的异常在此方法的调用者中得到了处理。调用者可能自己处理这种异常,也可能将这个异常放给它的调用者。异常就这样逐级上溯,直到找到处理它的代码为止。如果没有任何代码来捕获并处理这个异常,Java将结束这个程序的执行 抛出异常的情况 Java可能会抛出异常的情况包括:调用的方法抛出了异常、检测到了错误并使用throw语句抛出异常、程序代码有错误,从而导致异常,比如数组越界错误、Java运行时刻系统产生内部错误。当前两种异常发生时,应该告诉使用这个方法的人,此方法强迫Java抛出异常。因为任何抛出异常的方法都是导致程序死亡的陷阱,如果没有任何代码来处理方法抛出的异常,就会导致程序结束 抛出异常步骤 抛出异常实例 程序的输出结果 创建自定义异常 现实世界是非常复杂的,常常会有一些特殊的约束要求。例如我们制作一个统计河堤水位的软件,水位过高的时候,对程序本身只是一个较大的数字而已,并不会引发Java类库中的异常;但对于现实中的情况,水位过高就是一个致命的异常。这种情况下,Java类库中的异常处理类已经不能满足要求,我们需要抛出一个新的异常来提示过高的水位:一个自己定义的异常 自定义语法 自定义异常实例一 自定义异常实例二 自定义异常实例三 实例四 异常处理的作用 异常处理的缺点 异常处理的优点 经典练习题 ㈠填空题 ⑴throw语句的作用是 ____ 。 ⑵Exception又分为 ____和 ____ 异常。 ⑶Java中,异常分为 ____和____两类。 ⑷Throwable类有两个重要子类:___和___ 。 经典练习题 ⑸下面程序段的执行

文档评论(0)

yan666888 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档