给定 java 中的以下 try/catch 块:
try{
return;
}
catch(SomeException e){
System.out.println(e);
}
finally{
System.out.println("This is the finally block");
}
根据这篇文章:“Java中finally总是执行吗? https://stackoverflow.com/questions/65035/does-finally-always-execute-in-java“我可以看到程序的输出将是‘这是最后一个块’。但是,我不知道这是如何可能的,因为 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 http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.20.2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)