在异常处理中,如果catch块或finally块具有异常会发生什么?
答案 0 :(得分:5)
答案 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