- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
的异常处理机制对于计算机程序来说,错误和异常情况都是
第十一章? Java 的异常处理机制 对于计算机程序来说,错误和异常情况都是不可避免的。Java提供了丰富的出错与异常处理机制。 11. 1 关于异常 一、什么是异常? 异常实际上是程序中错误导致中断了正常的指令流的一种事件。 二、异常的分类 异常是一个对象,它继承自Throwable类,所有的 Throwable类的子孙类所产生的对象都是例外。 Error:由Java虚拟机生成并抛出,Java程序不做处理。 Runtime Exception(被0除等系统错误,数组下标超范围):由系统检测,用户的Java 程序可不做处理,系统将它们交给缺省的异常处理程序。 Exception(程序中的问题,可预知的):Java编译器要求Java程序必须捕获或声明所有的非运行时异常。 Throw:用户自己产生异常。 11. 2 异常处理 Java的异常可由类抛出,也可由环境抛出。 1、 异常处理的定义及其基本方式 (1)定义 异常处理是用户程序以预定的方式响应运行错误和异常的能力。 它的基本方式是:当一个方法引发一个异常后,可将异常抛出,由该方法的直接或者间接调用者处理异常。 ?(2)基本方式 try …catch结构: try { //正常执行的代码(可能抛出异常的语句)} catch ( 异常类型1 e) { //异常处理语句 } catch …. catch ( 异常类型n e) { //异常处理语句 } catch ( Throwable t ) { System.out.println(“所有前面未被俘获的错误在此被俘获”); return 0; } 2、例子 public static double Divider (double num, double denom) { try { double result =num/denom; return result; } catch (ArithmeticException a) {System.out.print(“An arithmetic exception occurred!”); return 0; } } 3、异常处理机制 在Java中,异常处理设备以结构化的方法处理异常的和意外的情形。 当异常发生,Java执行时系统在导致异常的方法里搜索异常处理(try-catch块)。 如果在当前方法里没有找到处理程序,就在调用方法(调用当前方法的方法)里寻找处理程序。 搜索一直继续直到执行时间系统找到适当的异常处理,就是被处理程序捕获的异常类型与引发的异常类型一致。 例子: //DerivedClass.java class BaseClass { public int divide(int num1,int num2) //父类的divide()方法 { return num1/num2; } } public class DerivedClass extends BaseClass { public int divide(int a,int b) //子类的divide()方法 { return super.divide(a, b); } public static void main(String args[]) { int result=0; DerivedClass d1=new DerivedClass(); try { result=d1.divide(100,0); } catch(ArithmeticException e) {System.out.println(Error…Division by zero); } System.out.println(The result is:+result); } } 输出 Error ...Division by zero The result is : 0 程序分析: 在上述代码中,main()方法激活子类超越父类的方法divide()。 子类方法依次以收到的
文档评论(0)