Asp.Net自定义错误页面

    当应用程序出错时,我不希望用户看到一个错误提醒页面,而不是看到一堆乱码。

方法1:简单的自定义错误处理页面可以通过web.config来设置:

<customErrors mode="RemoteOnly" defaultRedirect="error.aspx">
 <error statusCode="403" redirect="
error.aspx" />
 <error statusCode="404" redirect="
error.aspx" />
</customErrors>

 

方法2:通过Global.asax中的Application_Error事件实现

     Global.asax中的Application_Error事件的示例代码:

 void Application_Error(object sender, EventArgs e) 
    { 
        
// 在出现未处理的错误时运行的代码
        Exception objErr = Server.GetLastError().GetBaseException();
        
string sError = "发生异常页: " + HttpContext.Current.Request.Url.ToString() + "</br>";
        sError 
+= "异常信息: " + objErr.Message + "</br>";
        
//清除前一个异常
        Server.ClearError();
        
//此处理用Session["ProError"]出错。所以用 Application["ProError"]
        Application["ProError"= sError;
        
//string sPath = HttpContext.Current.Request.ApplicationPath;
        
//此处是不是page中,不能用Response.Redirect("../frmSysError.aspx");
        System.Web.HttpContext.Current.Response.Redirect(HttpContext.Current.Request.ApplicationPath + "/error.aspx");

    }

    错误页面error.aspx的代码:

 protected void Page_Load(object sender, EventArgs e)
    {
        
if (!IsPostBack)
        {           
            
//显示程序中的错误码
            if (Application["ProError"!= null)
            {
                 lblError.Text 
= Application["ProError"].ToString();
            }
        }
    }

 方法2代码下载:Global_Study.rar

原文地址:https://www.cnblogs.com/scottckt/p/1441199.html