黑马程序员技术交流社区

标题: 异常处理时的顺序问题? [打印本页]

作者: zoudeyong    时间: 2013-5-5 21:29
标题: 异常处理时的顺序问题?
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后
作者: hou604720966    时间: 2013-5-5 21:37
finally是不管怎么样都要执行的
你可以看看
try { //执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容 }
catch() { //除非try里面执行代码发生了异常,否则这里的代码不会执行 }
finally { //不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally }
作者: xuluheng718    时间: 2013-5-5 21:39
首先finally里面的语句或者语句块不管什么时候肯定会被执行,而且在return之前执行
作者: 337091921    时间: 2013-5-5 21:44
finally不一定一定执行啊。楼主谨慎啊。


例如如果finally前有,system.exit(0),就不会被执行

看例子:
                catch (FuShuException e){
                        System.out.println(e.getMessage());
                        //System.exit(0);有它下面不会执行,虚拟机会自动结束
                }finally {
                        System.out.println("必须要输出的代码");




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