1 语句的执行顺序
try{ } 中有个return 语句,那么紧跟在try后面的finally{ } 中的代码是否被执行?如果执行,什么时候被执行?是在return前还是return后?
例如这个函数:
public static int testFinally1(){
int res = 1;
try {
res = 2;
return res;
}catch (Exception e){
res = 3;
return res;
}finally {
System.out.println("finally1");
res = 4;
return 4;
}
}
当在main函数中使用
int res1 = testFinally1();
System.out.println(res1);
打印结果的时候,输出结果是:
这说明尽管try里面有return语句,finally中的代码还是会执行,另外,打印出来的是4而不是2,说明finally中的return会覆盖掉其他地方的return语句。
本文探讨了Java中try-catch-finally语句的执行流程,特别是return语句与finally块之间的交互作用。通过具体示例展示了不同情况下finally块内代码的执行时机及其对返回值的影响,并区分了基本类型与引用类型的不同表现。
2216

被折叠的 条评论
为什么被折叠?



