首页 > 其他 > 详细

finally代码块的执行

时间:2019-06-04 16:34:38      阅读:97      评论:0      收藏:0      [点我收藏+]
try{
    //todo  
}catch(Exception e){
    //todo
}finally{
    //todo
}

1.不管try,catch里面的代码快有无return,finally都会执行

2.如果try,catch里有return,finally也有return,最后以finally为准

3.如果try,catch里return的一个基本类型的变量,在finally里修改变量的值,返回结果不变,因为try,catch执行return时,返回的数据已经本压入栈中了

4.如果try,catch里return的一个复杂类型的变量,在finally里修改变量的引用(重写new一个赋值),返回结果不变,原因同上

5.如果try,catch里return的一个复杂类型的变量,不修改修改变量的引用,在finally里修改该类的属性值(obj.code="change"),返回结果发生改变,因为压入栈的是引用地址,直接修改引用地址里的属性,返回结果会跟随变化

finally代码块的执行

原文:https://www.cnblogs.com/jaxlove-it/p/10973842.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!