java异常合编.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * finally 不论try块中的代码是否抛出异常及异常是否被捕获,finally子句中的代码一定会被执行: 如果try块中没有抛出任何异常,当try块中的代码执行结束后,finally中的代码将会被执行; 如果try块中抛出了一个异常且该异常被catch正常捕获,那么try块中自抛出异常的代码之后的所有代码将会被跳过,程序接着执行与抛出异常类型匹配的catch子句中的代码,最后执行finally子句中的代码。 如果try块中抛出了一个不能被任何catch子句捕获(匹配)的异常,try块中剩下的代码将会被跳过,程序接着执行finally子句中的代码,未被捕获的异常对象继续抛出,沿调用堆栈顺序传递。 问题 当调用上述方法m()时,try块中包含方法的return语句,返回值为1。然而,实际调用该方法后产生的返回值为0。这是因为在方法实际返回并结束前,finally子句中的内容无论如何要被执行,所以finally子句中的return语句使得该方法最终实际返回值为0。 public int m(){ try { return 1; }finally{ return 0; } } 声明抛出异常 声明抛出异常是在一个方法声明中的throws子句中指明的。 声明异常的方法: returnType methodName([paramlist]) throws exceptionList 例如: void compute(int x) throws ArithmeticException{ … } 例如: public int read () throws IOException{ ...... } throws子句中同时可以指明多个异常,说明该方法将不对这些异常进行处理,而是声明抛出它们。 抛出异常 若某方法中需要直接抛出某异常时,可使用throw语句实现,具体步骤应该是: 选择合适的异常类; 创建该类的一个对象; 使用throw语句抛出该对象。 抛出异常 抛出异常首先要生成异常对象,异常或者由虚拟机生成,或者由某些类的实例生成,也可以在程序中生成。生成异常对象是通过throw语句实现的。 IOException e=new IOException(); throw e ; 或者直接写为: throw new IOException(); 抛出异常 如果一个方法可能抛出多个必检异常,那么必须在方法的声明部分一一列出,多个异常间使用逗号进行分隔: Class MyClass { … public myMethod(String s) throws IOException, MalformedURLException { … } … } 创建自己的异常类 Java语言中允许用户定义自己的异常类,但自定义异常类必须是Exception的直接子类或间接子类。 同时要理解一个方法所声明抛出的异常是作为这个方法与外界交互的一部分而存在的。方法的调用者必须了解这些异常,并确定如何正确的处理他们。 创建异常类注意: 根据Java异常类的继承关系,用户最好将自己的异常类定义为Exception的子类,而不要将其定义为RuntimeException的子类。因为对于RuntimeException的子类而言,即使调用者不进行处理,编译程序也不会报错。将自定义异常类定义为Exception的子类,可以确保调用者对其进行处理。 example class MyException extends Exception{ private int detail; MyException( int a ){ detail = a; } public String toString( ){ return MyException +detail; } } example public class ExceptionDemo{ static void compute(int a) throws MyException { System.out.println(called compute(+a+)); if( a10 ) throw new MyException(a); System.out.println(normal exit); } public static void

文档评论(0)

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

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

1亿VIP精品文档

相关文档