「例外處理不就是 try-catch 嗎?有什麼難的?」
會說這種話的人,肯定沒有吃過 Legacy Code 中 Exception 亂丟,或是亂處理,導致後續維護很麻煩的虧,或是,他就是那做亂處理導致後的人很麻煩的人。
我問一件事就好:「一個錯誤發生時,這個錯誤到底是 bug,用戶不對,還是物理上無法完全避免的狀況?」
Java 是一種定義非常嚴謹的語言,有的人喜歡,有的人不喜歡。然而,就 Exception 來說,它一開始基本的定義,就幫開發者把 Bug 與可修復錯誤分開了。
這裡,我們先花一點時間,把一個 query 的邏輯補上,再把原本丟 Unchecked Exception 的地方改丟 Checked Exception,使語意更明顯,為了後續的重構做準備。