当一个方法中的 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中的值,如果都没有方法体继续向下执行。