finally执行顺序问题

来源:互联网 发布:unity3d 删除project 编辑:程序博客网 时间:2024/04/29 04:37
public static void main(String[] args) {

System.out.println(new Test().test());

}

static int test(){

try {
System.out.println("6666666");
return 1;
} catch (Exception e) {
// TODO: handle exception
}finally{
return 2;
}
输出:6666666
2
结论:try中的语句调用先于finally中的语句执行,也就是说return 1先执行,
再执行return 2,所以最终返回输出2。return并不是让函数马上返回,而是return
语句执行之后,将把返回结果放置进函数栈中,函数并不是马上返回,它要在执行
finally语句之后才真正返回。
简言之:finally中的代码比return,break语句后执行!

0 0