黑马程序员技术交流社区

标题: 异常问题 [打印本页]

作者: 毕博    时间: 2012-4-25 19:20
标题: 异常问题
、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
作者: 张小庆    时间: 2012-4-25 19:24
在return中执行
主函数调用子函数并得到结果的过程,好比主函数准备一个空罐子,当子函数要返回结果时,先把结果放在罐子里,然后再将程序逻辑返回到主函数。所谓返回,就是子函数说,我不运行了,你主函数继续运行吧,这没什么结果可言,结果是在说这话之前放进罐子里的。

作者: 崔仁军    时间: 2012-4-25 20:10
1. 如果try  块中存在 return 语句,那么首先也需要将finally  块中的代码执行完毕,然
   后方法再返回。
2. 如果 try   块中存在 System.exit(0)语句,那么就不会执行 finally            块中的代码,因为
   System.exit(0)会终止当前运行的Java 虚拟机,程序会在虚拟机终止前结束执行。
作者: 魏征    时间: 2012-4-25 20:32
finally{}一定会执行,当try{}中的语句没有发生异常return语句会先运行,然后finally中的语句会运行,当try{}中的语句发生异常,return不会运行。catch语句运行,然后finally语句运行。
作者: 徐鑫    时间: 2012-4-25 20:56
finally{
里面的句子一定会执行
}
后面的 要看 前面是不是 发生异常

如果try{}里面的 正常执行完后 finally 做结束处理 那么

finally{} 后面还有 那当然会执行

如果 try{} 发生异常 到catch{}捕捉 或直抛出 然后执行finally{}

里面的,但是后面的代码就不会执行了。




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