A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 侯茂绵 中级黑马   /  2012-7-16 23:24  /  2098 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

评分

参与人数 1技术分 +1 收起 理由
祁焱 + 1

查看全部评分

2 个回复

倒序浏览
会执行的
finally中定义的通常是 关闭资源代码,因为资源必须释放。
finally只有一种情况不会执行。当执行到System.exit(0);fianlly不会执行。
所以try中的return是会执行的,而且是在finally执行之前
毕老师第十天视频有详细讲解,楼主可以再看看,就明白了

评分

参与人数 1技术分 +1 收起 理由
祁焱 + 1

查看全部评分

回复 使用道具 举报
try{}finally{}这个处理异常问题中的code 是这样考虑的在finally中的code的是都执行的除了 一种情况
当前面System.exit(0);的情况下他是提前退出了java虚拟机。所以finally的code不执行了。
另外你的try中的return的语句 是这样的首先先执行try的 内的异常语句,最后执行finally语句,所以实现执行return 在执行finally语句。

评分

参与人数 1技术分 +1 收起 理由
祁焱 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马