我不明白为什么在try块中使用return语句后,finally块中的语句仍然会被执行。据我所知,return语句会将控制权返回给主程序。
如果在try块中使用了return语句,那么try块的执行应该在此结束并将控制权交回给主程序,为什么finally块中的语句还是会被执行呢?
class a
{
public static void main(String arr[])
{
try
{
System.out.println("hello1");
return;
}
finally
{
System.out.println("hello2");
}
}
}
finally
始终会执行。但是,在finally
块中无法使用return
。 - Cᴏʀʏfinally
子句中的语句根据定义总是会被执行。 - Laurent S.