方法1:简单的自定义错误处理页面可以通过web.config来设置:
<customErrors mode="RemoteOnly" defaultRedirect="
error.aspx
">
<error statusCode="403" redirect=" error.aspx " />
<error statusCode="404" redirect=" error.aspx " />
</customErrors>
<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 " );
}
{
// 在出现未处理的错误时运行的代码
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();
}
}
}
{
if ( ! IsPostBack)
{
// 显示程序中的错误码
if (Application[ " ProError " ] != null )
{
lblError.Text = Application[ " ProError " ].ToString();
}
}
}
方法2代码下载:Global_Study.rar