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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如果try-catch中有return,那么final内的内容是否被执行?
谢谢

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

6 个回复

倒序浏览
会的吧
遇到System.exit(0);//就不执行

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

回复 使用道具 举报
这要看你return到哪里去了,如果是print的话,只会print return的数据,不过最后的final还是会被执行的,反正final最终都会被执行,这点基本没有异议。
回复 使用道具 举报
如果try-catch中有return,那么final内的内容是否被执行?

finally块中的语句只有一种情况不会被执行,就是程序它之前有System.exit(0);时。

如果try-catch中有return程序执行到这个return时会先判断是否有finally语句,如果有的话
先把要返回的值缓存起来(并未将值真正返回),然后执行完finally语句后再将值返回!
这里要注意的还有,finally中的语句对返回值没有影响!``

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

回复 使用道具 举报
根据楼主的几个提问,断定楼主没有看毕老师的java基础视频,这些在视频中都明确提到了。并且老师用文字做了记录。建议看下,可以解惑矣。
回答问题再:finally是一定会被执行的,一种情况除外,System.exit();
回复 使用道具 举报
一般的参考书会说:会执行,并且是在return之前执行,但其实这并不很符合实际。我的理解如下:
return的返回值会用一个(罐子,比如的)装着,等到finally执行完毕之后,才返回到main函数去,才使用return的结果的。
回复 使用道具 举报
final必然会执行,我勒个擦,你要好好掌握基础理论了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马