Throw/Throws区别和使用

异常处理与抛出机制详解
本文深入探讨了Java中`throws`关键字与`throw`语句的区别与使用场景,详细解析了如何在方法中正确地抛出和处理异常,确保程序的健壮性和可靠性。

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可以有可以不用加

 

转载于:https://www.cnblogs.com/iloverabbit/p/5100901.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值