總結
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?