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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 牧风 中级黑马   /  2016-8-4 01:00  /  427 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

.try{i=20;
return i;
}catch(){
}finally{i=100}
返回的i=20; 在return 处记录i然后finally 后边改变i的值只在finally范围内起作用,不会影响他的返回

4 个回复

倒序浏览
任何执行try 或者catch中的return语句之前,都会先执行finally语句,如果finally存在的话。
                  如果finally中有return语句,那么程序就return了,所以finally中的return是一定会被return的,
                  编译器把finally中的return实现为一个warning。
回复 使用道具 举报
感觉你理解错了,顺序执行,先返回20,在修改了i的值,这时候修改,不会影响返回值
回复 使用道具 举报
执行到return 语句时,先把return中的返回值存储起来,如果有finally代码块,就再执行finally代码块,执行完毕后,再把之前存储的值彻底返回到调用者那里;
回复 使用道具 举报
这个不懂啊,还能再详细点说吗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马