2012-08-23 40 views
1

在C#捕獲塊中處理異常的最佳方法。除了將錯誤記錄到Catch塊中的SQL DB之外,我沒有別的選擇。我想知道什麼是捕獲如果在Catch塊本身中捕獲異常?在C#捕獲塊中處理異常的最佳方法

+0

嘗試 { 扔; } 趕上(例外前){ // 記錄錯誤到DB 請告訴我最好能如果在登錄到數據庫 } – Sandeep

+0

這取決於錯誤發生在這裏完成。如果日誌引發異常,您希望發生什麼? – asawyer

回答

0

我會創建一個單獨的類來處理錯誤報告,並公開一個函數來處理記錄DB中的錯誤。
我發現這個指南有用:

http://www.codeproject.com/Articles/9538/Exception-Handling-Best-Practices-in-NET

,我過去所使用的一些代碼如下所示:

try{ 
    throw; 
} 
catch(Exception ex){ 
    LoggingClass.LogError(some paramaters,ex.tostring()); 
} 

,然後你的日誌類可能看起來像

public static class LoggingClass { 

    public static void LogError(some paramaters, ex.tostring()){ 

     //try to log to database 


     //catch and report error in some other way 
    } 

} 

我以前使用這篇文章作爲參考,因爲我喜歡登錄到文本文件的想法(在e泄漏數據庫錯誤),然後向用戶顯示「很好」的消息。

C# best practice error handling and passing error messages

+0

感謝Will ...因爲我們對此進行了深入研究,所以基本上沒有結束:)但是我們可以讓它像99%的安全感謝您的建議。我真的很感謝您抽出時間並回復它 – Sandeep