首页 > 其他 > 详细

try、catch、finally--try块里有return,finally还执行吗?

时间:2017-03-16 21:52:57      阅读:433      评论:0      收藏:0      [点我收藏+]

finally块的作用是,保证无论出现什么情况,finally块里的代码一定会被执行。

由于程序执行return就意味着结束对当前函数的调用并跳出这个函数体,所以任何语句要执行都只能在return之前执行(除非碰到exit函数)。所以,finally块里的代码也是在return之前执行的

如果try-finally或catch-finally中都有return,那么finally块中的return语句将会覆盖别处的return语句。

对于基本类型的数据,在finally块中改变return的值对返回值没有任何影响;而对引用类型的数据就会有影响。

 

面试:finally块是不是一定会执行?

        1) 当程序在进入try块之前就出现异常,不会执行;

        2) 当程序在try块中强制退出(System.exit(0))时,也不会执行。

try、catch、finally--try块里有return,finally还执行吗?

原文:http://www.cnblogs.com/jiqianqian/p/6561476.html

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