您的位置:首页 > 其它

try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

2017-01-06 15:08 363 查看
 Java常见面试题之一:

  try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 

  请看下面程序就可以解释:

 

public class FinallyTest {

public static void main(String[] args) {
System.out.println(returnAndFinally());
}

public static int returnAndFinally(){
int result = 0;
try {
result = 1;
return result;
} catch (Exception e) {
}finally{
result ++;
System.out.println("finally...");
}
System.out.println("afterfinally...");
return result;
}

}


 

结果如下:

finally...
1


  从结果可以看出,其实关于这个回答可以说是,finally是在return中间执行的,执行到return之后,结果就放在一个临时空间里面,然后就执行finally,虽然finally里面有对result里面操作,但是已经不影响结果了,除非是在finally里面有执行return。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐