2014-06-10 105 views
0

簡單問題: 該方法應記錄一個錯誤會導致錯誤該怎麼辦?寫入錯誤日誌時會發生什麼錯誤?

背景:
在數據庫上改變一個小東西之後,那真的是很辛苦相關的記錄系統(註冊表得到的時碼發生/從用戶錯誤填寫的,等等),我的代碼不再運行。
這裏的古怪事情是,由於數據庫方法的錯誤,系統中斷了一些加載方法,並且jquery沒有加載,所以我得到了JQuery錯誤!我花了大約5個小時才發現,jquery不是問題所在,相反它是日誌記錄方法中的一個問題,它會阻止jquery加載。

那麼,如何在代碼中避免這種情況?

+0

在日誌記錄方法引起異常時,使用嘗試捕獲日誌記錄方法並使用不同的通知。 – Sefa

+0

這是! (不是我的項目,我只是改變了一些東西),但在catch()中沒有任何反應,所以你不能真正看到是否有錯誤,如果你有一個空的catch – ReneK

回答

2

你不能迎合每種情況,並且如果它不寫入數據庫表應該表明日誌記錄存在問題。如果你想加強它,你可以考慮在特定的嘗試捕獲中遇到數據庫異常時寫入文本文件。

try 
{ 
} 
catch(SqlException ex) 
{ 
    fallBackWriteErrorToTxt(ex.Message); 
} 
0

您可以查看天氣的請求ajax或簡單的使用下面的代碼

public static bool IsAjaxRequest(this HttpRequest request) 
{ 
    if (request == null) 
    { 
     throw new ArgumentNullException("request"); 
    } 
    return (request["X-Requested-With"] == "XMLHttpRequest") 
      || ((request.Headers != null) && 
      (request.Headers["X-Requested-With"] == "XMLHttpRequest")); 
} 

使用上面的小說,你可以找出天氣的請求AJAX與否。
來源:How to check if request is ajax or not in codebehind - ASP.NET Webforms

您還可以在數據庫中創建一個列,以顯示哪種類型的錯誤提供了通過前端值的方式。

您還可以使用全局文件的Application_Error方法記錄錯誤。