原文:try和finally中都有return语句,执行哪一个return?

try 中的 return 语句调用的函数先于 finally 中调用的函数执行,也就是说 try 中的 return 语句先执行,finally 语句后执行,但try中的 return 并不是让函数马上返回结果,而是 return 语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回,它要执行 finally 语句后才真正开始返回。但此时会出现两种情况: 如果finally中也有re ...

2019-01-07 17:51 0 1687 推荐指数:

查看详情

try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,还是在return之后执行

这是一个很有趣的问题,我测试的结果是:是在return中间执行。 我在网上搜寻了一些资料,下面是参考代码: 输出结果: 下面是我在debug时,抓取的图片: 上图是程序执行try模块里面:变量"i"的值的情况。 上图是程序执行到了try模块中 ...

Wed Dec 11 02:44:00 CST 2013 5 48962
try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?

执行,在方法返回调用者前执行。 注意:在finally中改变返回值的做法是不好的,因为如果存在finally代码块,try中的return语句不会立马返回调用者,而是记录下返回值待finally代码块执行完毕之后再向调用者返回其值,然后如果在finally中修改了返回值,就会返回 ...

Sat Apr 21 23:08:00 CST 2018 0 1228
try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后?

  这是一道面试题,首先finally{}里面的code肯定是会执行的,至于在return前还是后, 看答案说的是在return执行,我觉得不对,百度了一下,有说return前的,有说return后的,还有return中间执行的。遂做了一个小测试如下: static ...

Fri Mar 02 07:17:00 CST 2018 4 597
try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会被执行,什么时候被执行,在 return 前还是后?

会在return中间执行try 中的 return 语句调用的函数先于 finally 中调用的函数执行,也就是说 return 语句执行finally 语句执行,但 return 并不是让函数马上返回,而是 return 语句执行后,将把返回结果放置进函数栈中,此时函数并不是 ...

Wed Mar 08 19:37:00 CST 2017 0 5721
try..catch..finally执行顺序return

try..catch..finally这个语法大家都很熟悉,就是捕捉异常、处理异常,面试中经常被问到的一个问题是:如果在try...catch中的某某地方return了,那么之后的某某步骤还会不会执行。今天就来用代码分析一下各种可能的执行情况,懒得看文章的话,直接看最后的总结,如果不明白再回 ...

Tue Sep 09 22:21:00 CST 2014 7 2288
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM