Praxis 17. Never ignore an exception 永遠不要忽略異常

遇到異常的處理方式

當 Java 產生一個異常的時候,處置的方式分為下列四種:

  • 捕捉並處理,防止向 caller 擴散 ( Propagate )
  • 捕捉並再一次拋出,讓他向 caller 擴散
  • 捕捉後,拋出一個新異常給 caller
  • 不捕捉,讓他直接向 Caller 擴散

在 Checked Exception 後面三項的處理方式,Java 會強制要求在 method signature 加上 throw

千萬不要把異常給吞了

在開發的過程中,一定會出現某個 method 會拋出 Exception ,這時候 IDE 會貼心的提醒開發者,記得加上 Try catch ,然而最要命的就是加上下面這種:

1
2
3
4
try{
throw new IOException();
} catch (IOException exception) {
}

在 catch 區塊完全不處理,一旦發生怪異的錯誤,是很難追查的,最少也得加上一行 logger ,以方便我們追查到底發生了什麼事,最好的狀況是加上 printStackTrace,stackTrace 會把我們發生的錯誤以 Stack 的方式來顯示,對追找錯誤是相當有幫助的。