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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张明星 中级黑马   /  2012-3-27 00:18  /  2000 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

8 个回复

倒序浏览
return 后。
如果try语句没有执行换也会执行finally语句, 如果try语句里没有出现异常则会try语句执行完之后再执行finally语句。
回复 使用道具 举报
finally语句中的内容是一定会执行的内容,一般关闭资源的语句都放在finally中。
如果执行到return,那么执行完就会执行finally中的语句。
回复 使用道具 举报
finally{}里面的代码会在try{}里面的retrun语句之后执行,如果return语句没有被执行到,那么finally{}里面的语句还是会执行,除非try{}里面有个System.exit(0)语句,退出系统了,finally{}才不会执行了
回复 使用道具 举报
后,finally里面写的语句是一定要执行, 除非直接关闭程序 system.exit(0);或者关机  断电等宕机情况才不会被执行
回复 使用道具 举报
ruturn之后,如果try里面的语句因为其它原因无法执行,finally代码快也会执行,
因为finally代码快是一定执行的代码。finally通常是用来关闭资。比如:数据库操作,数据库打开操作后,
需对数据库进行关闭;因为资源必须释放。finally只有一种情况不会执行,当执行到System.exit(0); finally不会执行
回复 使用道具 举报
如果try中的return出现了异常,那么return不执行,然后执行finally;
如果try中的return没有出现异常,那么return执行后,然后执行finally;
finally中的内容是一定会被执行的。
回复 使用道具 举报
除了system.exit(0);其余情况都执行finally里的语句
回复 使用道具 举报
finally代码块一定为执行的,在执行完try代码块后执行。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马