8 异常处理.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8 异常处理

第八讲 异常处理 主要内容 异常的概念 异常处理机制 异常处理机制:try语句块 异常处理机制:catch语句块 异常处理机制:finally语句块 异常的分类 Error类 Exception类 自定义异常 使用自定义异常有以下步骤: 通过继承Exception类声明自己的异常类 在方法适当的位置生成自定义异常对象,并用throw语句抛出异常对象 在方法的声明部分用throws语句声明该方法可能抛出的异常。 自定义异常 异常与重写 子类在对父类的方法进行重写时,不能抛出新的异常,但RuntimeException中的子类除外。 【例题】 import java.io.*; class A { void func() throws IOException,NullPointerException { } } class B extends A { void func() throws IOException,NullPointerException,ArithmeticException { } //正确 } class C extends A { void func() throws NullPointerException,ArithmeticException { } //正确 } class D extends A { void func() throws FileNotFoundException { } //正确 } class E extends A { void func() throws Exception { } //错误 } 总结:重写的要求 子类方法与父类方法有相同的返回类型 子类方法与父类方法有相同的方法名称 子类方法与父类方法有相同的参数列表 子类方法的访问级别不能低于父类中该方法的访问级别 子类方法抛出的异常范围不能大于父类方法抛出的异常的范围 综合练习 参考代码 * * 异常的概念 异常处理机制 内置异常类 自定义异常 异常与重写 异常是程序运行时发生的错误。比如数组越界、访问的文件不存在,除数为零等。 设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为异常的发生而阻断或产生不可预见的错误。 try { // 可能发生异常的代码块 } catch (ExceptionType1 e) { … } catch (ExceptionType2 e){ … } finally{ //最后执行的代码 } Java程序出现异常时,会自动生成一个异常类对象,提交给Java运行时系统,这个过程称为抛出(throw)异常。 当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。 如果Java运行时系统找不到可以捕获异常的方法,则程序在发生异常的代码处终止。 try语句块中包含了可能发生异常的代码 try语句块后跟一个或多个catch语句块 在执行过程中,try语句块可能会抛出一种或者几种的异常对象,它后面的catch语句块分别对这些异常进行处理 如果没有发生异常,所有的catch语句块中的代码全部不被执行。 catch语句块声明其能处理的一种特定类型的异常并提供处理的方法 当异常发生时,程序会终止当前流程,根据获得异常的类型去执行相应的catch代码段。 如果catch捕获的异常具有继承关系,那应该先捕获子类的异常。 finally语句在异常处理机制中起到收尾的工作,用来保证程序的健壮性。 finally语句块在有无异常发生时都会被执行。 try/catch/finally语句块中的return/break/continue不能阻止finally中语句块的执行。 遇到System.exit(0),finally语句块中的语句才不被执行。 Throwable类是所有异常类的父类。 Error类是Throwable类的直接子类。Error 类定义了在通常环境下不希望被程序捕获的异常,包括动态链接失败、虚拟机错误、堆栈溢 出等。由于Error通常是灾难性的致命错误, Java程序不应该捕获这类异常。

文档评论(0)

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

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

1亿VIP精品文档

相关文档