【发布时间】:2014-02-13 09:28:45
【问题描述】:
在异常处理中,如果catch块或者finally块出现异常会怎样?
【问题讨论】:
-
抛出异常。
-
为什么不试试呢?实验是最好的老师。
在异常处理中,如果catch块或者finally块出现异常会怎样?
【问题讨论】:
【讨论】:
根据 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
【讨论】: