首页 > 其他 > 详细

Throw/Throws区别和使用

时间:2016-01-05 07:05:26      阅读:185      评论:0      收藏:0      [点我收藏+]

throws E1,E2,E3 只是告诉程序这个方法可能会抛出这些个异常,方法的调用者可能要处理这些异常。而这些异常E1,E2,E3可能是该函数体产生的。

而throw是明确之处这个地方要抛出这个异常。

void doA() throws Exception1, Exception3 {
   try {
     ……
   } catch(Exception1 e) {
     throw e;
   } catch(Exception2 e) {
     System.out.println("出错了");
   }
   if (a != b)
     throw new Exception3("自定义异常");
}

  

代码块……中可能产生异常Exception1、Exception2和Exception3。
如果产生Exception1异常,则捕捉了之后抛出由该方法的调用者去做处理;
如果产生Exception2异常,则该方法自己做了处理(打印出了说出错了),所以该方法就不会再向外抛出Exception2异常了,void doA() throws Exception1,,Excpetion3里面的Exception2也就不用写了;
而Exception3异常是该方法的某段逻辑出错,程序员自己作了处理在该段逻辑错误的情况下抛出异常Exception3,则调用者也需要处理。

  • 如果方法体Throws Exception并没有被处理,方法头一定要声明throws这个Exception
  • 如果方法体没有具体Throws Exception,方法头声明throws这个Exception可以有可以不用加

 

Throw/Throws区别和使用

原文:http://www.cnblogs.com/iloverabbit/p/5100901.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!