public class testReturn {
public static int test() {
try {
return fun1();
} catch (Exception e) {
} finally {
return fun2();
}
}
public static int fun1() {
System.out.println("fun1被执行了");
System.out.println("fun1的确被执行了,返回么?");
return 1;
}
public static int fun2() {
System.out.println("fun2被执行了");
System.out.println("fun2的确被执行了,返回么?");
return 2;
}
public static void main(String[] args) {
System.out.println(testReturn.test());
}
}
结果:fun1被执行了
fun1的确被执行了,返回么?
fun2被执行了
fun2的确被执行了,返回么?
2
//注意,结果中第二句之后并没有返回值(但此时x的值会被记录)
!程序之后暂时给finally操纵了,如果finally“把握住了机会”
用return返回了,那返回的是现在x的值,如果没把握住,不管它执
行了什么代码,返回的x值还是执行try那个时期记录的。
包(package)
return 之前是会先执行finally的 |