黑马程序员技术交流社区

标题: try中的疑问 [打印本页]

作者: 张明星    时间: 2012-3-27 00:18
标题: try中的疑问
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的代码什么时候被执行,在return前还是后?

作者: 刘元霄    时间: 2012-3-27 00:21
return 后。
如果try语句没有执行换也会执行finally语句, 如果try语句里没有出现异常则会try语句执行完之后再执行finally语句。
作者: anyanyhai    时间: 2012-3-27 00:24
finally语句中的内容是一定会执行的内容,一般关闭资源的语句都放在finally中。
如果执行到return,那么执行完就会执行finally中的语句。
作者: zhouxp3323    时间: 2012-3-27 00:40
finally{}里面的代码会在try{}里面的retrun语句之后执行,如果return语句没有被执行到,那么finally{}里面的语句还是会执行,除非try{}里面有个System.exit(0)语句,退出系统了,finally{}才不会执行了
作者: 1002865186    时间: 2012-3-27 01:00
后,finally里面写的语句是一定要执行, 除非直接关闭程序 system.exit(0);或者关机  断电等宕机情况才不会被执行
作者: 许飞翔    时间: 2012-3-27 08:01
ruturn之后,如果try里面的语句因为其它原因无法执行,finally代码快也会执行,
因为finally代码快是一定执行的代码。finally通常是用来关闭资。比如:数据库操作,数据库打开操作后,
需对数据库进行关闭;因为资源必须释放。finally只有一种情况不会执行,当执行到System.exit(0); finally不会执行
作者: 杨华威    时间: 2012-3-27 08:32
如果try中的return出现了异常,那么return不执行,然后执行finally;
如果try中的return没有出现异常,那么return执行后,然后执行finally;
finally中的内容是一定会被执行的。

作者: 郑洋洋    时间: 2012-3-27 09:36
除了system.exit(0);其余情况都执行finally里的语句
作者: 〆_xin_、_跳    时间: 2012-3-27 10:40
finally代码块一定为执行的,在执行完try代码块后执行。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2