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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 鸭梨的生活 中级黑马   /  2014-5-18 21:02  /  1192 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

3 个回复

倒序浏览
finally{}里的语句是一定会执行的语句。只有try{}或者catch中有system.exit() 这一种情况 才不会执行finally。finally会在return之前执行。
回复 使用道具 举报
try{}catch(){}finally{}的运行原理是这样的..首先在try块里面捕捉异常 要是没有异常接下来执行finally{}块,有异常直接从有异常的地方跳转到catch块中! 然后执行finally ,要是在try中遇到return 或者其他的跳转则先跳到finally中然后在跳转.但是在跳转的过程中出现问题 则进入catch中 然后直接跳出..

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
可以执行的到,只有一种情况finally执行不到,就是catch语句中最后写了System.exit(0)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马