给定 java 中的以下 try/catch block :
try{
return;
}
catch(SomeException e){
System.out.println(e);
}
finally{
System.out.println("This is the finally block");
}
根据这篇文章:“Does finally always execute in Java?”我可以看到程序的输出将是“这是最后一个 block ”。但是,我不知道这怎么可能,因为 print 语句前面有一个 return...
我怀疑这种行为与线程有关,但我不确定。请赐教。谢谢。
最佳答案
finally
在 return
语句之前执行。由于 java 规则 finally
将始终被执行,除非 JVM 崩溃或调用 System.exit()
。
Java语言规范明确提到了finally在不同条件下的执行:
http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.20.2
关于java - java中的try/catch block 返回与finally子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19899155/