我在我的應用程序中使用Elmah進行錯誤報告。如果catch語句代碼導致錯誤怎麼辦?
通常,如果出現錯誤,我會抓住它,製作一條自定義消息並將其返回。
catch (Exception ex)
{
var e = new Exception("Failed to get Intake Statuses <br />"
+ " (@PageNumber = " + pageNumber + ", @PageSize = " + pageSize + ".<br />"
+ " Error: " + ex);
ErrorLogger.LogErrorManually(e);
throw new Exception(e.Message);
}
現在,如果在創建的自定義錯誤中存在錯誤,則會出現此問題。
處理這個問題的最佳實踐是什麼?我是否創建另一個子Try/Catch?
「LogErrorManually」容易拋出嗎?也許它應該嘗試/捕捉自己。否則,它看起來不需要擔心。如果你這樣做,另一個嘗試/抓住聽起來像是你最好的選擇。 – BradleyDotNET 2014-10-20 20:13:12
調用它的方法是否有自己的try ... catch? – Mephy 2014-10-20 20:13:24
拋出新的異常將導致您丟失堆棧跟蹤。而是隻考慮'throw;',或拋出一個包含原始異常的新異常作爲內部異常。 – 2014-10-20 20:14:23