10.4.2重新抛出异常对象(续).ppt

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

第十章 异 常 处 理 教学目标 异常处理概述 异常分类 异常的捕获处理 重新抛出异常 异常对象的生成 重新抛出异常对象 定义新的异常类型 10.1 异常处理概述 异常(Exception):是指程序在运行过程中出现的不正常情况或错误。 如除0溢出、数组越界、文件找不到等,这些错误的发生将阻止程序的正常运行。 当出现异常情况时,一个Exception对象就产生了,并交由异常处理程序处理,异常处理程序是使程序得以恢复正常运行的处理过程。 10.1 异常处理概述(续) Java的异常处理机制描述如下: 在一个方法的运行过程中,如果发生了异常, l?则这个方法(或者是Java虚拟机)生成一个代表该异常的对象(它包含了异常的详细信息),并把它交给运行时系统,运行时系统寻找相应的代码来处理这一异常。我们把生成异常对象并把它提交给运行时系统的过程称为抛出(throw)一个异常。 l?? 运行时系统寻找相应的代码来处理这一异常,系统在方法的调用栈中查找,从产生异常的方法开始进行回朔,沿着被调用的顺序往前寻找,直到找到包含相应异常处理的方法为止。其过程如图10-1所示。这一过程称为捕获(catch)一个异常。 l?? 如该异常未进行成功捕获,则程序将终止运行。 10.1 异常处理概述(续) 例10-1 一个未被捕获的异常:被零除 //Exc0.java class Exc0 { public static void main(String args[]) { int d = 0; int a = 42 / d; } } 程序修改为提供捕获“被零除”的异常处理。只需要把所要监控的代码放进一个try块就可以了。紧跟着try块的,是包括一个说明捕获的错误类型的catch子句。 例10-2 一个被捕获的异常:被零除 //Exc2.jaa class Exc2 { public static void main(String args[]) { int d, a; try { // monitor a block of code. d = 0; a = 42 / d; } catch (ArithmeticException e){ //catch divide-by-zero error System.out.println(Division by zero.); } System.out.println(After catch statement.); } } 程序运行将正常结束,并显示出如下信息: ?10.2 异常分类 Java的异常是一个对象,所有的异常都直接或间接地继承Throwable类。Throwable类的继承层次结构如下: 10.2 异常分类(续) Throwable类是所有异常的超类。它有两个子类Error和Exception。 Error类及其子类由Java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等。Java程序不应捕获这些异常。 Exception类及其子类(RuntimeException和 IOException)代表Java程序中可能发生的异常,并且应用程序可以捕获这些异常。 Java将异常分为两种类型: 编译时检查性异常(checked exception) 非检查性异常(unchecked exception,又称运行时异常). 10.2 异常分类(续) 除了Java类库所定义的异常类之外,用户也可以通过继承已有的异常类(一般从Throwable类或Exception类继承)来定义自己的异常类,并在程序中使用(利用throw产生,catch捕捉)。 10.2 异常分类(续) 常见的异常有: ArithmeticException:算术运算溢出。如除数为零 ArrayIndexOutOfBandsException:数组下标越界异常。 ArrayStoreException:数组储存异常。数组复制时,若源数组和目标数组的类型不一致时,导致异常。 NullPointerException:空指针异常。 NumberFormatException:数据格式异常。将字符串(含有非数字)直接转换成数值时产生。 OutOfMemoryException:内存溢出异常。在创建一个对象时,由于申请的内存空间过大,导致系统内存不够。 IOException:输入/输出中的异常。 FileNotFoundException:文件找不到异常。 NoClassDefFo

文档评论(0)

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

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

1亿VIP精品文档

相关文档