- return执行时,先会将后面的表达是的值,置于返回栈的顶部(此为方法的最终返回值),然后去执行finally的代码
- return的最后返回值取决于return后面的表达式的值
- 此处共涉及三个操作:序号1是return最终的返回操作、序号2是return后面的表达式、序号3是finally的执行,其执行顺序为:序号2>序号3>序号1
- 示例
public class Test01 {
public static int i=1;
public static int ret(){
try {
i=2;
return (++i);
} catch (Exception e) {
e.printStackTrace();
}finally{
i=10;
System.out.println("finally i="+i);
}
return 0;
}
public static void main(String[] args) {
System.out.println("ret返回的值="+ret());
System.out.println("最后的i的值=" +i);
}
}
- 测试结果