當一個方法中的 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中的值,如果都沒有方法體繼續向下執行。