- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例8-3 抛出三个异常类型的对象并捕获处理 三个异常类型的对象: 1、ArithmeticException 2、ArrayIndexOutOfBoundsException 3、StringIndexOutOfBoundsException 通过catch语句对三种异常对象进行捕获处理。 try{ // one throw new ArithmeticException() }catch(ArithmeticException ac){ System.out.println(ae); } try{ // two throw new ArrayIndexOutOfBoundsException() }catch(ArithmeticException ai){ System.out.println(ai); } try{ // three throw new StringIndexOutBoundsException() }catch(ArithmeticException si){ System.out.println(si); } 重新抛出异常对象首先必须先生成异常。 如果在一个方法中生成异常,但该方法并不处理它自己产生的异常,而是沿着调用层次向上传递,由调用它的方法或方法栈来处理这些异常,叫重新抛出异常。 该方法不确切知道如何对这些异常进行处理。 FileNotFoundException异常 由FileInputStream的构造方法产生,在其构造方法中不清楚如何处理它,是终止程序的执行还是新生成一个文件?这需要由调用它的方法来处理。 重新抛出异常对象的方法 在产生异常的方法名后面加上要抛出(throws)的异常列表: returnType methodName([paramlist]) throws exceptionList 例如:FileInputStream类中read()方法定义: public int read() throws IOException { … } throws子句中可同时指明多个异常,说明该方法不对这些异常进行处理,是声明抛出它们。 非运行时异常 程序中必须要作处理:或者捕获,或者声明重新抛出。 运行时异常 程序中可不处理。 例8-4 重新抛出异常对象 要求用户从键盘输入一个字符号。当输入‘0’时,程序执行结果如左图所示;当输入非‘0’字符时,程序执行结果如右图所示。 自定义异常类必须继承Throwable或Exception类,建议用Exception类。一般不把自定义异常作为Error的子类(Error通常表示系统内部的严重故障)。 自定义异常是RuntimeException及其子类继承的(运行时异常),程序中可以不捕获和处理它。 自定义异常是Throwable、Exception及其子类继承的(编译时异常),程序中必须捕获并处理。 自定义异常 try-catch-finally形式捕获处理 异常对象由用户自己抛出(throw)。 自定义异常的一般形式: class MyException extends Exception { … } 例8-5 计算两个数之和,当任意一个数超出范围(10,20)时,抛出自己的异常。 public class test { public static void main(String[] args) { int i=1,j=1; try{ i++; j--; if(i/j1) i++; } catch(ArithmeticException e){ System.out.println(0); } catch(ArrayIndexOutOfBoundsException e){ System.out.println(1); } catch(Exception e){ System.out.println(2); } finally{ System.out.println(3); } System.out.println(4); } } 0
文档评论(0)