前面已經多次提到過Checked Exception的好處。
在實際工作中,已經證實了這個問題。
當然,問題的由來和結構的設計有一定的關系。
A Module 調用 => B Module 調用=> C Module。
而異常處理已經深深的夾雜著這樣的代碼結構中。
用戶直接使用A,但是會在C處才會出現問題。
這時候C需要拋出一個異常, 但是附加關鍵要求:
此異常消息明確無誤,能夠清晰地看出異常出現的原因
(在不重啟的情況下,以便用戶解決問題)
剛開始的代碼中,直接就在C處跑出異常。
后來隨著結構的復雜,加入了模塊D (其位置和B相同)
甚至在最外層加入D (和A并列)
這就導致C處的異常消息的問題逐漸浮現出來。
原有在C處就能直接決定的Message現在不能在C處就確認(因為有多個進入C的入口)
此時,只能將異常消息的決定權往上一級進行轉移。
。。。。。。。。。。。。。
UnChecked Exception對于這樣的轉移來說 太不能友好的支持了。
在反駁上述內容的時候,請帶著這樣的觀點:
好的東西,可以在很別扭的情況下,也可以讓別人輕松的達到和諧。