zoukankan      html  css  js  c++  java
  • return与finally的几种组合情况

    情况一:

    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值

  • 相关阅读:
    [大山中学模拟赛] 2016.9.17
    [DP优化方法之斜率DP]
    Gengxin讲STL系列——String
    小班讲课之动态规划基础背包问题
    ubuntu安装体验
    小班出题之字符串基础检测
    G
    B
    小项目--反eclass
    树--天平问题
  • 原文地址:https://www.cnblogs.com/fatfatdachao/p/3334648.html
Copyright © 2011-2022 走看看