偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

ASP.NET全局異常處理淺析

開(kāi)發(fā) 后端
本文主要講述ASP.NET全局異常時(shí)的處理方法,希望可以給你帶來(lái)幫助。

在我們寫程序時(shí)偶爾會(huì)由于疏忽導(dǎo)致有些異常沒(méi)有進(jìn)行處理。如果將異常詳細(xì)信息提示給用戶會(huì)帶來(lái)不安全因素,如果不提示詳細(xì)信息又會(huì)給用戶報(bào)告異常帶來(lái)麻煩。雖然可以通過(guò)配置customErrors mode來(lái)實(shí)現(xiàn)只有管理員可以查看錯(cuò)誤,但發(fā)現(xiàn)問(wèn)題的時(shí)間可能會(huì)比較長(zhǎng)。通過(guò)全局異常處理就可以在異常發(fā)生時(shí)立即記錄異常,或直接發(fā)送郵件向管理員報(bào)告,以在最快的速度發(fā)現(xiàn)并處理異常。

要為ASP.NET應(yīng)用程序添加全局異常處理主要是添加HttpApplication的Error事件的處理。這與在BeginRequest事件中進(jìn)行URL重寫方法類似。先建一個(gè)繼承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)
{
//在這里進(jìn)行異常處理
}
}
}

然后還需要配置web.config的httpModules使之生效。

我現(xiàn)在比較喜歡的做法是將異常的詳細(xì)信息記錄在數(shù)據(jù)庫(kù)中,然后返回一個(gè)編號(hào),再將頁(yè)面重定向到自己寫的錯(cuò)誤提示頁(yè),將這個(gè)編號(hào)提示給用戶,用戶如果要報(bào)告錯(cuò)誤只需提供該錯(cuò)誤編號(hào),管理員就能在后臺(tái)中找到錯(cuò)誤的詳細(xì)信息并進(jìn)行修改。

下面說(shuō)2個(gè)我在做全局異常處理時(shí)碰到的問(wèn)題及我的解決方案:

***個(gè)是獲取異常hResult,由于是私有屬性不能直接訪問(wèn),解決方法是通過(guò)(int)System.Runtime.InteropServices.Marshal.GetHRForException(exception)來(lái)獲??;

第二個(gè)問(wèn)題是記錄了很多不是由于ASP.NET應(yīng)用程序引發(fā)的錯(cuò)誤,比如用戶鍵入一個(gè)錯(cuò)誤的URL,異常處理系統(tǒng)會(huì)記錄一個(gè)“文件不存在?!钡腻e(cuò)誤,而這些錯(cuò)誤記錄不僅不能真正反映出ASP.NET應(yīng)用程序的異常反而會(huì)給管理員帶來(lái)更多麻煩。我的解決方法是通過(guò)判斷if(exception is System.Web.HttpException)來(lái)過(guò)濾這些HttpException。

【編輯推薦】

  1. ASP.NET MVC實(shí)例和新RC版本中視圖方面的改進(jìn)
  2. 在ASP.NET中使用Treeview控件和XML
  3. 如何在ASP.NET中使用SmtpMail發(fā)送郵件
責(zé)任編輯:楊鵬飛 來(lái)源: IT168
相關(guān)推薦

2009-07-29 17:20:18

應(yīng)用程序異常

2009-08-05 18:36:12

ASP.NET Che

2009-07-24 13:41:15

ASP.NET AJA

2009-07-31 12:43:59

ASP.NET MVC

2009-08-05 15:50:13

ASP.NET優(yōu)點(diǎn)

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設(shè)計(jì)

2009-07-29 09:34:54

IsPostBack屬ASP.NET

2009-08-04 17:16:16

ASP.NET代碼優(yōu)化

2009-08-05 16:17:29

ASP.NET For

2009-08-05 16:50:09

ASP.NET For

2009-07-24 18:02:46

ASP.NET編程

2009-08-05 16:53:14

ASP.NET組件設(shè)計(jì)

2009-08-10 14:55:43

ASP.NET htt

2009-08-03 10:07:20

ASP.NET Ses

2009-07-27 17:25:53

ASP.NET驗(yàn)證控件

2009-08-05 13:16:43

ASP.NET URL

2009-08-10 18:19:37

ASP.NET安裝環(huán)境

2009-07-27 15:34:11

MembershipASP.NET

2009-07-27 14:24:16

ASP.NET訪問(wèn)權(quán)限

2009-08-10 18:43:05

ASP.NET安裝步驟
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)