情况一:

return在try块中:

  先执行finally块,在执行return语句。

情况二:

 return在try块中,finally块中也有return语句:

finally语句中的return的返回值会把try块中的return的返回值覆盖。

情况三:

finally内改变返回值的value但不返回继续修改。如果finally语句中没有返回语句覆盖的话,那么原来的返回值就不会变,不管你是不是改变了要返回的那个变量。

情况四:

在try,finally外,返回一个值,如果try,finally内已经有return则外部的return不会起作用。

 

总结:

碰到try语句中的return,先把return的值放在某个池中,然后执行finally里面的代码块,如果有返回值覆盖语句,就改变先前放在池中的值如果没有,就把那个池中的值取出,即:对待try ,finally内有return语句的情况,只有在finally覆盖return才会改变返回值。否则即使在最外层return新值,也不会改变原有的return值

相关文章:

  • 2021-06-12
  • 2021-08-13
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-20
  • 2021-07-01
相关资源
相似解决方案