原文:https://zhuanlan.zhihu.com/p/38533850
經典書籍《Clean Code》里提倡避免使用Checked Exception,給出的原因大致是:
Checked Exception違反了開閉原則,底層方法簽名增加throws異常聲明后,會引起整個調用鏈的修改。
這句話表述是有問題的,底層方法增加了throws異常聲明,只會影響調用該方法的函數(shù),在調用該方法的函數(shù)內捕獲異常并進行處理就可以了,不會引起整個調用鏈的修改。
當然調用者也可能不處理異常,而只是簡單的把異常向上拋出,但這種把異常簡單向上拋出的行為是不好的編程習慣,是應該被避免的,不應該成為不使用Checked Exception的理由。
王垠大大對Checked Exception有很好的分析,參見: