try catch finally 中 return 的使用

当一个方法中的 try catch finally 当有return时的执行顺序?
        一个不为void的方法必须有返回值,所以在finally或try catch finally 语句之后必须有 return语句。因为return语句之后的代码无意义,
        所以return肯定位于try中、catch中、finally中、方法体末尾,其中位于finally和方法体末尾的return语句效果一样可看做一种return。
        finally中和try catch finally语句之后只能有一个return。
        当finally或语句之后有return时,方法最终的返回值就是该return的值。
        当try中有异常时,位于异常之后的代码都没有意义,此时return不会执行。
        return语句优先级:    finally > catch > try
        当try catch finally执行到return语句时,会先把该return的值保存下来,继续执行finally

  如果try catch finally 中有多个return 则最终返回最后一次return的值。

  如果finally中有return那就把finally中的返回值当作方法体的返回值返回。

  如果finally中没有return返回catch中的return值,如果catch中也没有就返回try中的值,如果都没有方法体继续向下执行。

猜你喜欢

转载自www.cnblogs.com/guofz/p/10286821.html