我是一個綠色開發人員,試圖在大型多層java應用程序中處理錯誤處理(har-har)。在很多情況下,我認爲通過多個層次鏈接異常是一個好主意;例如當在呼喚最下層的一些外部服務中的故障導致的問題一路上揚的觀點:何時記錄鏈接異常?
- 內容X要求,但用戶無權
- 原因包括:授權名單用戶是空
- 造成的:用戶管理web服務響應壞請求 - 參數foo的格式必須爲像「XYZ」
- 原因包括:授權名單用戶是空
最重要的例外情況,我真正想要檢查的堆棧跟蹤是最後一個例子,我提出了一個不好的要求,我需要修正foo的格式。但是,當我讓這個異常通過圖層向上冒泡時,很好地鏈接在對每個圖層都有意義的異常中......當我最終捕獲並記錄這些東西時,默認日誌記錄行爲總是向我顯示關於最外層異常的詳細信息,也許有5行堆棧跟蹤的根本原因。
這讓我想記錄發生的異常,讓它們冒泡,但是最終你記錄了大部分東西;何時發生以及何時最終被發現。
這裏的最佳做法是什麼?
關於這個問題會有很多意見,但是沒有「真相」,選擇適合你的東西,不管你選擇什麼,人們都會不同意(我個人喜歡把東西重新推到最外層並記錄在那裏) – Friso