黑马程序员技术交流社区

标题: 关于异常的finally [打印本页]

作者: 牧风    时间: 2016-8-4 01:00
标题: 关于异常的finally
.try{i=20;
return i;
}catch(){
}finally{i=100}
返回的i=20; 在return 处记录i然后finally 后边改变i的值只在finally范围内起作用,不会影响他的返回


作者: ylca    时间: 2016-8-4 07:41
任何执行try 或者catch中的return语句之前,都会先执行finally语句,如果finally存在的话。
                  如果finally中有return语句,那么程序就return了,所以finally中的return是一定会被return的,
                  编译器把finally中的return实现为一个warning。
作者: showJiang    时间: 2016-8-4 11:01
感觉你理解错了,顺序执行,先返回20,在修改了i的值,这时候修改,不会影响返回值
作者: haizi004    时间: 2016-8-4 14:55
执行到return 语句时,先把return中的返回值存储起来,如果有finally代码块,就再执行finally代码块,执行完毕后,再把之前存储的值彻底返回到调用者那里;
作者: 崇尚技术的菜鸟    时间: 2016-8-4 19:17
这个不懂啊,还能再详细点说吗




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