您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關ASP.NET中怎么處理全局異常,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
要為ASP.NET應用程序添加全局異常處理主要是添加HttpApplication的Error事件的處理。這與在BeginRequest事件中進行URL重寫方法類似。先建一個繼承System.Web.IHttpModule的類。然后添加Init方法和ShowError方法。
namespace Snowdream { public class HttpModule : System.Web.IHttpModule { public void Init(System.Web.HttpApplication context) { context.Error += new EventHandler(ShowError); } private void ShowError(object sender, EventArgs e) { //在這里進行異常處理 } } } |
然后還需要配置web.config的httpModules使之生效。
我現在比較喜歡的做法是將異常的詳細信息記錄在數據庫中,然后返回一個編號,再將頁面重定向到自己寫的錯誤提示頁,將這個編號提示給用戶,用戶如果要報告錯誤只需提供該錯誤編號,管理員就能在后臺中找到錯誤的詳細信息并進行修改。
下面說2個我在做全局異常處理時碰到的問題及我的解決方案:
***個是獲取異常hResult,由于是私有屬性不能直接訪問,解決方法是通過(int)System.Runtime.InteropServices.Marshal.GetHRForException(exception)來獲取;
第二個問題是記錄了很多不是由于ASP.NET應用程序引發的錯誤,比如用戶鍵入一個錯誤的URL,異常處理系統會記錄一個“文件不存在。”的錯誤,而這些錯誤記錄不僅不能真正反映出ASP.NET應用程序的異常反而會給管理員帶來更多麻煩。我的解決方法是通過判斷if(exception is System.Web.HttpException)來過濾這些HttpException。
關于ASP.NET中怎么處理全局異常就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。