如果无论如何都要执行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");
答案 0 :(得分:6)
不保证底部的语句将被执行。例如,如果
try
块或匹配的catch
块使用return
(在某些情况下为break
)catch
块中没有一个与该异常匹配,因此未捕获该异常catch
内引发了另一个(或相同的)异常(但未捕获)在所有这些情况下,保证执行finally
语句 。
答案 1 :(得分:1)
您的捕获可能return
或引发异常,例如,在此之前,您可以最终使用它来释放资源。最后执行,然后将控件传递回调用者。