尝试,捕捉,最后执行

Har*_*ara 4 java try-catch try-finally

可能重复:
在finally块中抛出异常

  • 只有在try块中抛出异常时才会执行catch块.

  • 如果抛出异常,则始终在try(-catch)块之后执行finally块.

我的问题是,如果我在finally块中得到Exception而不是如何处理它?????

Tas*_*kos 7

这是Java语言规范中众所周知的问题/问题,因为如果在finally子句中抛出异常(不在嵌套的try-catch中处理它),原始异常就会丢失.您需要嵌套一个新的try-catch来捕获新的异常,并在那里处理它.

  • 在java 7中有一种方法来处理它.现在有一个"被抑制"异常的概念,你可以将多个异常绑定在一起(参见[Throwable.addSuppressed()](http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable的.html#addSuppressed%28java.lang.Throwable%29)).这是为新的try-with-resources功能添加的. (3认同)