当try块中存在return;
语句时,我对try-finally的执行流程感到困惑。在我理解中,finally块总是会被执行,即在返回调用方法之前。但是考虑以下简单代码:
public class TryCatchTest {
public static void main(String[] args){
System.out.println(test());
}
static int test(){
int x = 1;
try{
return x;
}
finally{
x = x + 1;
}
}
}
打印出的结果实际上是1。这是否意味着finally块没有被执行?有人能帮我解决吗?
System.out.println()
,看看它是否被执行了?我认为它已经被执行了,但是返回的值是1。 - Andrew Logvinov