Possible Duplicate:
Java try-finally return design question
考虑以下方法:
public boolean test() {
try {
return false;
} finally {
return true;
}
}
为什么返回true
?我知道finally部分总是被执行,但是它应该首先执行try部分并返回true并退出该方法吗?有人能用简单的话解释一下为什么 Java 会这样吗?我认为这是非常违反直觉的。
最佳答案
由于“finally”总是执行,因此它是在放弃方法外部的控制流(即返回)之前执行的。
但是如果JVM在try block 中暂停,finally将不会被执行。
关于java - 这个违反直觉的 Java "feature"背后的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8231947/