方法一:修改 Web.Config 文件
描述:
该方法可以便捷的对所有异常进行屏蔽,并转向到特定的友好页面,但不能获取具体的异常信息。
方法:
修改 Web.config 中的 ”customErrors” 设置,使其将异常定向到指定页面,可参考以下代码:
< customErrors mode ="RemoteOnly" defaultRedirect="~/portal/customError.aspx" ></ customErrors >
方法二:修改 Global.asax.cs 文件
描述:
该方法可以在发生异常时按照程序的逻辑去处理异常。
方法:
修改 Global.asax.cs 文件,添加 Error 事件,并捕获具体错误。
在InitializeComponent方法中添加事件
#region Web 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Error += new System.EventHandler(this.Global_Error); // 添加事件
}
#endregion
新增Error事件对应的处理函数
private void Global_Error(object sender, System.EventArgs e)
{
Exception objErr = Server.GetLastError().GetBaseException();// 获取刚刚发生的错误
Server.ClearError(); // 清空错误
// 对错误进行处理,可以根据objErr的属性获得详细的异常信息,其中Message属性最为详细
// 这里是将错误信息以URL QUERY的方式发送给一个指定的异常友好显示页面,由该页面做UI显示
Response.Write( "<script>window.open('customError.aspx?msg=" + Server.UrlEncode(
objErr.Source + "|" + objErr.TargetSite.Name + "|" +objErr.Message ) + "','_self')</script>" );
}