try{}里面有return,finally里的代码会不会执行,什么时候被执行?

标签: try-catch Java finally
8人阅读 评论(0) 收藏 举报
分类:

给出答案:

会执行,在方法返回给调用者前执行,因为如果存在finally代码块,try中的return语句

不会立马返回给调用者,而是记录下返回值待finally代码块执行完毕之后再返回;


注意这几点:

1、不管有木有出现异常,finally块中代码都会执行;
2、当try和catch中有return时,finally仍然会执行;
3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;
4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。

查看评论

try后的finally {}里的代码会不会被执行,什么时候被执行?

先看下面一段代码 static void Main(string[] args) { Console.WriteLine(GetIt()); ...
  • MsdnWoo
  • MsdnWoo
  • 2015-12-29 10:53:07
  • 1336

try里面有个return 那后面的finally还执行吗?

无意看到这个问题,好吧,基础不扎实记录一下:就这样。 会,在return前做。 但是问题又来了,就是return的问题。 总结就是 finally一定执行,但是return ...
  • u010527630
  • u010527630
  • 2016-01-30 18:13:57
  • 766

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

这个关于try{},finally {}和return的问题,网上答案纷繁。然而,错误的答案一样遍地都是。 今天在http://bbs.csdn.net/topics/60474475看到了很好的答案...
  • wugy315
  • wugy315
  • 2016-10-24 15:04:35
  • 610

黑马程序员-try {}里有一个return语句,那么紧跟在这个try后的finally {}里的代码会不会被执行

static void Main(string[] args) { Console.WriteLine(GetIt()); Consol...
  • FishinDream
  • FishinDream
  • 2014-04-29 16:50:11
  • 1095

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

finally语句总会执行的除非遇到
  • wangdianyong
  • wangdianyong
  • 2014-05-17 23:36:26
  • 1332

如果try块里面有return语句,后面finally块里的语句什么时候执行?

应该是在return中间执行。先把结果返回,然后执行finally里面的语句,最后,程序逻辑返回到主函数。...
  • weixin_36513603
  • weixin_36513603
  • 2017-02-16 10:52:31
  • 91

try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,是在return前还是后

一般答案:会执行,在方法返回调用前执行。准确的说是在return中间执行。 下面举个例子: public class Test { public static void main(Strin...
  • qq_17034717
  • qq_17034717
  • 2016-04-26 21:59:59
  • 4124

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

try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?   2012-03-09 00:09:27|...
  • lifei128
  • lifei128
  • 2014-03-06 09:24:26
  • 1254

Java - try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?

会执行,在方法返回前执行。注意:在finally中改变返回值的做法是不好的,因为如果存在finally代码块,try中的return语句不会立马返回调用者,而是记录下返回值待finally代码块执行完...
  • chimomo
  • chimomo
  • 2017-10-26 15:38:10
  • 156

Java异常处理中,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

问题:Java异常处理中,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 解答:会执行,在r...
  • avinegar
  • avinegar
  • 2012-07-15 20:05:51
  • 3271
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 8万+
    积分: 3285
    排名: 1万+
    博客专栏
    最新评论