2016-10-31 63 views
1

我的系統有2個主要層,即服務層和數據庫訪問層。數據庫層異常處理的設計模式

我公開一個接口到服務層進行數據庫操作。現在

,在此界面中有一些可以通過例如DAO層的每一個操作拋出除了少數例外,超時異常etc-

是否有表達不是明確指定每隔本規範的方式方法與throws ExceptionName

+0

很酷。但是,我想我會嘗試一下檢查出來的異常例外。 –

+0

感謝您的快速接受! – GhostCat

回答

1

這裏有多種選擇;但我認爲我的「意見」以某種方式與你在很多地方現在找到了「最佳實踐」相匹配:

  • 如果你想使用檢查異常,然後創建一些抽象的基異常,並把那一個在你的列表中。因爲你真的不希望你的拋出列表中有兩個以上的例外。只是因爲如此廣泛的投擲名單隨着時間而增長,並且他們很快就會污染你所有的圖層。
  • 你也可以不使用檢查的異常!相反:拋出適當的運行時異常,並通過接口上的javadoc記錄該事實。許多人認爲,選中和未選中的例外之間的「戰爭」是超過,而未選中贏了。因爲無論如何,你需要一些「通用的一切捕捉」東西。那麼,無論如何要寫這些代碼,爲什麼這些維護密集型的排列清單喧囂?
1

有沒有一種方法來表達此規範,而不是顯式指定每個拋出方法ExceptionName?

沒有。抱歉。

您可以通過(重新)實現您的自定義異常作爲層次結構來潛在地減少樣板量。但是除非你想讓你的例外不被檢查,那麼一些樣板是必要的。


1 - 這也有缺點。如果您取消選中,您會失去編譯時檢查異常的問題。