最后真的需要阻止吗?

时间:2018-08-02 04:17:50

标签: java try-catch finally

如果无论如何都要执行catch块之后的语句,java中的finally块的真正用途是什么? 例子

 try {
 //Code
}
catch (Exception e)
{
//Code
}
finally {
 System.out.println("anyway it will be        executed");
 }

System.out.println("anyway it will be executed");

2 个答案:

答案 0 :(得分:6)

不保证底部的语句将被执行。例如,如果

  • try块或匹配的catch块使用return(在某些情况下为break
  • catch块中没有一个与该异常匹配,因此未捕获该异常
  • catch内引发了另一个(或相同的)异常(但未捕获)

在所有这些情况下,保证执行finally语句

答案 1 :(得分:1)

您的捕获可能return或引发异常,例如,在此之前,您可以最终使用它来释放资源。最后执行,然后将控件传递回调用者。