天天看點

Java基礎 - try 和 finally 裡都有return,哪個為準?

總結

1-正常情況下,finally語句塊都會執行。除了一些特殊情況(finally語句塊一定執行嗎?)

2-如果finally 沒有 return,finally 對 return 變量的重新指派修改無效。原因:

如果try有傳回值,就把傳回值儲存到局部變量中

執行jsr指令跳到finally語句裡執行

執行完finally語句後,傳回之前儲存在局部變量表裡的值

3-如果try 和 finally 都包含return,return 值會以 finally 語句塊 return 值為準

參考

return 與 finally 的執行順序對傳回值的影響

你真的了解try{ return }finally{}中的return?

繼續閱讀