[英]Exception Catching Best Practices on 3 Tier Application
我有一個跟隨3層的WCF:
有誰可以請幫助我:
在以下場景中,上述哪一層是捕獲和記錄異常的最佳位置:
場景1:
DLL上發生異常。
場景:2:
BLL上發生異常。
另外,我是否總是總是在Try and Catch上從Service中包含對BLL的調用?
這取決於你的系統,但我會在BLL中記錄異常。 並提醒你“登錄”不要抓住! 那就是 - 在捕獲結束時將進行重新拋出!
我根本沒有抓到任何服務 - 這只是為了與客戶溝通 - 不需要在其中放置任何邏輯恕我直言。
當然:抓住你拋出的預期異常,然后讓那些未被發現的通行證。
例如:場景1 - 可能捕獲SqlExceptions,嘗試處理它們,如果沒有將它們包裝在某些DAL-Exception中並拋出它們。 場景2 - 可能從第3層捕獲DAL-Exceptions,看看你是否可以處理它們或再次包裝它們,...
恕我直言,處理,記錄和靜音各種未預料到的異常( catch (Exception)
)幾乎絕不是一個好主意 - 在這之后應用程序狀態將非常不確定。
閱讀MSDN上有關Microsoft異常處理塊的一些文章
它經歷了很多場景,並為您提供了一些關於異常處理策略最佳實踐的好主意,無論您是否使用異常處理塊,如下圖所示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.