4

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

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

  • finally 块总是在 try(-catch) 块之后执行,无论是否抛出异常。

我的问题是如果我在 finally 块中遇到异常而不是如何处理它??????

4

2 回答 2

7

这是 Java 语言规范中众所周知的问题/陷阱,从某种意义上说,如果在 finally 子句中抛出异常(没有在嵌套的 try-catch 中处理它),原始异常就会丢失。您将需要嵌套一个新的 try-catch 来捕获新的异常,并在那里处理它。

于 2012-08-22T15:02:25.333 回答
3

您必须在 finally 块中处理异常

喜欢

finally{
    try
    {
       ///
    }
    catch(Exception e)
    {
      ///  
    }
}
于 2012-08-22T15:04:46.807 回答