我想在任何页发生错误时转到Err.aspx处理, 但当页转到Err.aspx时无法获取发生错误页的异常信息....
相关代码如下:// Web.config
<customErrors defaultRedirect="Err.aspx" mode="On" /><httpHandlers>
<add verb="*" path="Err.aspx" type="Test.ErrorHandler, Test" />
</httpHandlers>
// 自定义Http来处理Err.aspx
public class ErrorHandler : IHttpHandler
{
public ErrorHandler(){}
public void ProcessRequest(HttpContext context)
{
context.Server.Transfer("Err.aspx", false);
}
public bool IsReusable
{
get { return true; }
}
}
// Err.aspx页
private void Page_Load(object sender, System.EventArgs e)
{
if(this.Context.AllErrors.Length!=0)
{
StringBuilder sb = new StringBuilder();
Exception[] ex = this.Context.AllErrors;
for( int i = 0; i<ex.Length; i++)
{
sb.Append(ex.GetType().Name);
sb.Append("<br>");
sb.Append( ex.Message);
}
}
}// 测试页 index.aspx
private void Page_Load(object sender, System.EventArgs e)
{
string str = "a";
int i = Convert.ToInt32(str);
}
当 index.aspx 发生异常可以正常转向到 err.aspx , 但err.aspx页无法获取异常信息...
不知有什么好办法来决解...
相关代码如下:// Web.config
<customErrors defaultRedirect="Err.aspx" mode="On" /><httpHandlers>
<add verb="*" path="Err.aspx" type="Test.ErrorHandler, Test" />
</httpHandlers>
// 自定义Http来处理Err.aspx
public class ErrorHandler : IHttpHandler
{
public ErrorHandler(){}
public void ProcessRequest(HttpContext context)
{
context.Server.Transfer("Err.aspx", false);
}
public bool IsReusable
{
get { return true; }
}
}
// Err.aspx页
private void Page_Load(object sender, System.EventArgs e)
{
if(this.Context.AllErrors.Length!=0)
{
StringBuilder sb = new StringBuilder();
Exception[] ex = this.Context.AllErrors;
for( int i = 0; i<ex.Length; i++)
{
sb.Append(ex.GetType().Name);
sb.Append("<br>");
sb.Append( ex.Message);
}
}
}// 测试页 index.aspx
private void Page_Load(object sender, System.EventArgs e)
{
string str = "a";
int i = Convert.ToInt32(str);
}
当 index.aspx 发生异常可以正常转向到 err.aspx , 但err.aspx页无法获取异常信息...
不知有什么好办法来决解...
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货