我正在開發一箇中等大小的Java Web應用程序,其中使用Struts作爲MVC框架和數據訪問層的簡單JDBC。我一直在尋找這種應用程序中的異常處理最佳實踐。我發現了幾篇文章,其中有些文章是矛盾的,只會讓我更加困惑,而不是把事情弄清楚和簡單。有人說,重複使用現有的異常而不是定義特定於應用程序的異常會更好,其他人則會針對系統中可能出現的每一個小問題展示巨大的應用程序特定異常層次。有人說最好不要在數據訪問層處理異常並將它們委託給服務層,另一些人則認爲數據訪問層異常應該在本地捕獲,因爲將它們委託給服務層會違反兩層之間的抽象。等等。Java Web應用程序中的異常處理
如果你讓我知道文章/書籍的鏈接/名稱,以表明在這種情況下爲你工作的固體解決方案,我將非常感激。解決方案應該至少清除以下幾點,並說明理由:
- 哪裏發現SQLE錯誤?
- 如何記錄異常?
- 是否應該記錄未檢查的異常?
- 應該在表示層捕獲未經檢查的異常,並且它們是否應該顯示給用戶?
- 如何檢查異常處理,哪些要顯示給用戶以及如何處理?
- 應該如何使用全局異常處理程序頁面?
- 在這種情況下應該如何使用struts ActionErrors?
感謝
謝謝你的迴應。 關於#3,如果篩選器在錯誤頁面上偵聽,我們如何捕獲Filter中未處理的異常? – craftsman 2010-01-31 13:17:18
它存儲爲請求屬性,名稱爲「exception」。另一方面,你也可以通過在try/catch塊中放置'chain.doFilter(request,response)'來處理異常並轉發到錯誤頁面。 – BalusC 2010-01-31 17:46:40