[讀書心得] 例外處理設計的逆襲



書中幾乎所有的程式碼都是以 Java 作為例子,所以寫 Java,C# 的人看起來會比較輕鬆。太深入的內容就不寫了,簡單寫幾句看完自己覺得的有印象的(寫程式可以先當作身體反應的準則),有興趣的還是買書去支持一下 Teddy 大大

  • HTC One X 被婊很大。 XD
  • 接到 Exception 的程式碼,若沒有能力去處理,就先往上丟,最後讓 main 發生例外,或是 GUI 顯示比較白話的訊息。
  • Java 7 後新增的功能
    • Multi-catch exceptions:若收到不同的例外都是做同樣的處理(ex:印 log),就可以合併成一個 catch,減少重複的程式碼。
    • try-with-resource:從 C# 的 using 借過來的概念(最近剛好也碰到),直接把產生的資源寫在 try(...這裡頭...){},執行完就會自動釋放資源,可以少寫 finally,也不會忘記釋放資源。
  • Checked Exception v.s. Unchecked Exception
    • Checked Exception:Java 設計概念認為 Checked Exception 代表可以回復的錯誤,Compiler 會強迫開發者去處理 Checked Exception(catch 或是再丟出去)。不過我好像都沒有回復過 Checked Exception,要碼不是印 log,再往上丟,了不起就寫個 re-try 機制來想辦法衝過去。
    • Unchecked Exception:程式碼內不應該出現的錯誤,就使用 Unchecked Exception,若別人收到此錯誤,代表要去檢查為什麼發生,然後去修正程式碼。
    • C# 都是 Unchecked Exception,所以一開始寫發現都沒有 try catch,但最後又被 exception 炸到,很不習慣。
  • 若實在對例外處理沒有想法,那就是一直往上丟就對了,至少炸掉會知道,而不是被 catch 吃掉,提早在設計階段就炸掉趕快處理,比在上線才炸掉來的風險小。

最後壞味道和重構壞味道的部分,實用度很高,去買來翻看看吧。

0 則回應: