Java中try-catch-finally-return的执行顺序

来源:互联网 发布:scala java bean 编辑:程序博客网 时间:2024/05/16 14:45

结论一:

   return语句并不是函数的最终出口哈,如果有finally语句,这在return之后还会执行finally(return的值会暂存在栈里面,等待finally执行后再返回)
结论二:

   finally里面不建议放return语句,根据需要,return语句可以放在try和catch里面和函数的最后。可行的做法有四:
   (1)return语句只在函数最后出现一次
   (2)return语句仅在try和catch里面都出现。
   (3)return语句仅在try和函数的最后都出现。
   (4)return语句仅在catch和函数的最后都出现。
   注意,除此之外的其他做法都是不可行的,编译器都会报错。

1.try块中没有抛出异常,try、catch和finally块中都有return语句

   try-catch-finally都有return语句时,没有异常时,返回值是finally中的return返回的。

2.try块中没有抛出异常,仅try和catch中有return语句

   try-catch都有return语句时,没有异常时,返回值是try中的return返回的。

3.try块中抛出异常,try、catch和finally中都有return语句

   try块中抛出异常,try、catch和finally中都有return语句,返回值是finally中的return

4.try块中抛出异常,try和catch中都有return语句

   返回的catch中return值。

5.try、catch中都出现异常,在finally中有返回

    返回finally中return值。

6.只在函数最后出现return语句

0 0
原创粉丝点击