2013-03-01 56 views
-4

的更好方法是將近60%到70%的代碼用於異常處理並記錄這些異常。 其餘30至40%是業務邏輯。在我的工作中,編寫異常處理代碼

有沒有辦法使用EntLib或任何其他可以在這裏應用的概念提取異常處理部分?

問候。

+0

這個問題可能會以「不建設性」的方式關閉。請閱讀[常見問題]和[問] – 2013-03-01 11:25:07

+0

爲什麼?抓住只有日誌的塊是相當普遍的,但完全沒用。想要以更通用的方式解決這個問題是一個非常好的問題。當你知道它時,解決方案不是很難。因此,這個問題應該得票,而不是下調和結束票。 – jgauffin 2013-03-01 12:19:22

回答

1

這真的很容易。

做。不。抓住。那。例外。

http://www.codeproject.com/Articles/125118/Do-NOT-catch-that-exception

的事情是,所有這一切只是記錄異常的異常塊是不是非常有用。大多數(如果不是全部的話)層級可以讓您以結構化的方式記錄異常(WCF有IHErrorHandler,ASP.NET可以使用自定義IHttpModule,ASMX可以使用自定義SoapExtension,WinForms/WPF有Application.ThreadException)。這使得所有其他try/catch/log塊完全無用。

只有在能夠真正處理它們(即履行方法合同)的情況下才能捕獲異常。也就是說,如果某個方法返回User,那麼只有在可以處理該錯誤時纔會捕獲異常,並返回User