閒談軟體設計:例外處理
本文源起於前陣子,前同事在 FB Messenger 問起:為什麼 BeanGoException
(是的,沒錯,就是最近發表的 BeanGo!,過去三年的青春都在開發這個產品) 是繼承 RuntimeException
而不是 Exception
?這是一種設計選擇,但這樣的選擇是好是壞就可以討論了。
在設計軟體架構時,常常被忽略的就是例外或錯誤的處理,原因不外乎在設計時並不會知道會拋出什麼例外或以什麼形式回報錯誤,特別是還未決定或熟悉第三方套件前,因此,當真正遇到第三方套件例外拋出時,常會受限於既有的介面規範 (method signature)…