這個Item講了幾個重要概念:
第一點與第二點非常同意。以第一點來說,通常我們以不同模組、階層的角度去設計對應的例外,不同模組、階層以Clean Architecture來說,如Gateway、Domain、UseCase layer等,會設計不同的Checked Exception並搭配Homogeneous Exception(同質例外)降低介面演進的機會。關於Homogeneous Exception(同質例外)可以參考搞笑談軟工提及的內容。
第三點的話,我就會看情況而決定。假如我需要多做precheck或者是在API發生問題的時候去讓服務可以正常使用,這些勢必會額外增加開發與維護成本。
Effective Java第三版Item 73。