如果catch块或者最后阻塞有异常会发生什么?

时间:2014-02-13 09:28:45

标签: java exception-handling

在异常处理中,如果catch块或finally块具有异常会发生什么?

2 个答案:

答案 0 :(得分:5)

最后,块异常将掩盖原始异常。

当一个catch块或finally块中抛出一个新的异常将从该块传播出来时,当新异常向外传播时,当前异常将被中止(并被遗忘)。

检查herehere了解更多详情

答案 1 :(得分:1)

根据JLS 14.20.2。执行try-finally和try-catch-finally

  

如果catch块由于原因R突然完成,则执行finally块。然后有一个选择:

     
    

如果finally块正常完成,则try语句突然完成,原因是R。

         

如果finally块因为S而突然完成,则try语句突然完成,原因是S(并且原因R被丢弃)。

  

finally块可能会抛出异常,如果是这样,try或catch块抛出的任何异常都会丢失。

参考:http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.20.2