當頁面遇到一個未處理的異常時,展現給用戶的將是難看的報錯信息。其實只要在Global.asax文件的Application_Error事件中添加用於處理異常的代碼,就可以避免用戶看到那些報錯信息了。
例如
在WebForm1.cs的Page_Load事件中添加
using System.Text.RegularExpressions;
string errMessage = "遇到一個未處理的異常,請通知管理員,謝謝!";
if (Session["errMessage"] != null && int.Parse(Session["admin"]) != 0) // Session["admin"] = 1 表示瀏覽者是管理員
errMessage = FormatError(Session["errMessage"].ToString());
Label1.Text = errMessage;
private string FormatError( string inputString )
{
string temp = inputString;
temp = Regex.Replace( temp, "/n", "<br>" );
return temp;
}
在Global.asax的Application_Error事件中添加
Exception lastError = Server.GetLastError();
Session["errMessage"] = lastError.ToString();}
Server.Transfer("error.aspx");
下面是具體介紹如何使用Global.asax的文章
使用ASP.NET Global.asax 文件