快速业务通道

Java:如何处理异常 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
quired try-catch     new Inheritor(3).passing();     new Inheritor(1).passing();     new Inheritor(-1).passing();     //no exceptions     try {       new Inheritor(3).fortifiedPassing();     } catch (NotBigEnoughException e) {       e.printStackTrace();     } catch (UnknowException e) {       System.out.println(e);     }     //NotBigEnoughException:     try {       new Inheritor(1).fortifiedPassing();     } catch (NotBigEnoughException e) {       e.printStackTrace();     } catch (UnknowException e) {       System.out.println(e);     }     //UnknownException:     try {       new Inheritor(-1).fortifiedPassing();     } catch (NotBigEnoughException e) {       e.printStackTrace();     } catch (UnknowException e) {       System.out.println(e);     }    } }

结果:

accept 3 accept 3 accept 3 accept 3 com.zj.exception.types.UnknowException: i don''t know how to deal with -1 com.zj.exception.types.NotBigEnoughException: reject 1    at com.zj.exception.Recover.passing(Recover.java:28)    at com.zj.exception.Inheritor.fortifiedPassing(Inheritor.java:38)    at com.zj.exception.Inheritor.main(Inheritor.java:63)

Java:如何处理异常(4)

时间:2011-03-14 zhangjunhd

4.RuntimeException与包装异常

RuntimeException是unhecked异常,它们由JVM抛出(你也可以抛出它),并且不必在异常声明(throws)中列出。

如果RuntimeException没有被catch而到达mian()方法时,那么在程序退出前会自动调用该异常的printStackTrace()方法,打印该异常。

RuntimeException代表的是编程错误(如0除数,数组越界),是应该在调试阶段解决的。

当你在捕获某些异常,而不知道该如果处理时,你可以将它包装为RuntimeException,这样在后续的方法调用过程中就不用声明(throws)该方法了。

在类Wrapper中,我们override fortifiedPassing()方法,并将它可能抛出的异常包装为RuntimeException。

Wrapper.java

package com.zj.exception; import com.zj.exception.types.NotBigEnoughException; import com.zj.exception.types.UnknowException; public class Wrapper extends Inheritor {    public Wrapper(int cur) {     super(cur);    }    public void fortifiedPassing() {     try {       super.fortifiedPassing();     } catch (NotBigEnoughException e) {       throw new RuntimeException(e);     } catch (UnknowException e) {       throw new RuntimeException(e);     }    }    public static void main(String[] args) {     // not required try-catch     new Wrapper(3).fortifiedPassing();     new Wrapper(1).fortifiedPassing();     new Wrapper(-1).fortifiedPassing();    } }

结果:

accept 3 Exception in thread "main" java.lang.RuntimeException: com.zj.exception.types.NotBigEnoughException: reject 1    at com.zj.exception.Wrapper.fortifiedPassing(Wrapper.java:14)    at com.zj.exception.Wrapper.main(Wrapper.java:23) Caused by: com.zj.exception.types.NotBigEnoughException: reject 1    at com.zj.exception.Recover.passing(Recover.java:28)    at com.zj.exception.Inheritor.fortifiedPassi

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号