2011-04-25 117 views
3

以下這樣的問題: Handling exceptions in a Swing UI (low level to high level and exception wrapping)三層體系結構:必須避免層之間的異常依賴關係?

存在這樣的異常正在從方法拋出在服務類的邏輯/服務和UI層之間有明顯的相關性(IOException的從一個文件的操作來)和被處理在Swing組件的代碼中。

這是要避免的事情嗎?如果最好避免這樣的依賴關係,那麼服務類中的異常怎麼處理呢?我應該簡單地將Exception包裝在RuntimeException中並讓它傳播到UncaughtExceptionHandler?

回答

2

如果異常是服務層的公共API的一部分,那麼依賴它們是完全沒問題的。但是,不要讓這些異常逃脫通過你的UI控制器進入UI,這可能是一個好習慣。從那裏你應該通知UI你想發生什麼,因爲這個例外。

1

如果您保存/加載數據,則在圖層之間共享IOException屬於正常現象。但是像SaxParserException/SqlException這樣的例外應該被封裝,因爲它們依賴於當前的實現。