Praxis 22. Do not return from a try block

不要在 Try Catch 中執行 return

離開 try 區塊有三種可能:

  • 拋出異常
  • try 區塊正常的結束
  • 在 try 區段執行了 return, break 或是 continue。

然後千萬要記住 無論是否 catch exception ,都將進入 finally block

1
2
3
4
5
6
7
public int confusedReturn(){
try{
return 2;
} finally{
return 4;
}
}

這段程式碼很容易讓人混亂,到底最後回傳 2 還是回傳 4 ( 答案是回傳 4 )。過去以為看到 return 程式會立即回傳,在這樣的條件下就失效了,也因為這個原因會讓開發者的除錯變得相當困難。

為了避免這樣的情形發生,盡可能不要在 Try catch 的 block 進行 return。