读书人

|M| 将才做的异常处理有一个天大的异常

发布时间: 2011-12-25 23:21:20 作者: rapoo

|M| 将才做的错误处理有一个天大的错误
protected void Application_Error(Object sender, EventArgs e)
{
// 在出现未处理的错误时运行的代码
Exception error = HttpContext.Current.Server.GetLastError();
String Path = Request.Url.ToString();
Response.Redirect(String.Format( "/web/error/404page.aspx?Path={0}&Error={1}&Detail={2} ", Path, Server.UrlEncode(error.Message),Server.UrlEncode(error.ToString())));
}

页面
protected void Page_Load(object sender, EventArgs e)
{
throw new Exception( "出错 ");
}
这个时候上面就没有做用了
我的理解是
Response.Redirect
这里因为 在这个网页load的时候出错他也没有办法执行这条语句

[解决办法]
throw new Exception( "出错 "); ======这样写会死循环的.
[解决办法]
所以在404page.aspx中要catch错误,即Onerror中Clear掉.
[解决办法]
怎么不搞个Exception的类来记录一下呢?丢一个实体传过克就可以了
[解决办法]
怎么个错误??

[解决办法]
可以捕捉实现的的~~~给页面写个Page_Error事件,在将错误参数等方式递交到你的错误页面,自己可以调一下.

protected void Page_Error(object sender, EventArgs e)
{
Exception error = HttpContext.Current.Server.GetLastError();
.
.捕捉错误...
.
Response.Redirect( "error.aspx?Path=...... "+ "错误信息等 ");
}
[解决办法]
错误 信息 对于 客户是 严重多于 和 不友好的.

应该使用 异常处理类 在遇到异常的 时候进行文件日志记录.
[解决办法]
有两个在异常未处理时将被ASP.NET调用的事件:

Page_Error event,它提供捕获在Page级别发生错误的方法

Application_Error event,它提供捕获在代码中的任何地方发生错误的方法。该事件的范围是整个应用程序,这使它成为添加日志代码的一个理想地方。

这两个事件的执行顺序是——先执行Page_Error,后执行Application_Error。如果希望在Page_Error中处理过的错误就不要再在Application_Error中处理,我们可以在Page_Error中处理错误之后,使用Server.ClearError方法清除最后一个错误,避免再调用Application_Error

[解决办法]
使用自定义的异常处理类,写入日志
[解决办法]
Response.Redirect可以
/web/error/404page.aspx ??
根目录下的??

[解决办法]
/web/error/404page.aspx
网站根目录下游览这个网页看可不可以

[解决办法]
web/Default.aspx
而不是
/web/error/404page.aspx
========
Response.Redirect(String.Format( "/web/error/404p
这里

[解决办法]
test.aspx:
protected void Page_Load(object sender, EventArgs e)
{
throw new Exception( "cccccc ");
}

Global.asax:
void Application_Error(object sender, EventArgs e)
{
// 在出现未处理的错误时运行的代码
Exception ex= Server.GetLastError();
Response.Redirect( "error.aspx?test= "+ex.Message);


}

error.aspx:
protected void Page_Load(object sender, EventArgs e)
{
label1.Text= "错误是: "+Request[ "test "].ToString();
}

完全能捕捉到啊~~~没有错误.可能是lz使用Response.Redirect跳转页面出错.
检查那些页面的路径是否对的,或者加个测试页面试一下.
[解决办法]
1 异常记日志《log4net,db等》
2 自定义错误信息提示给用户。
[解决办法]
将才,什么地方的方言,桐城?
[解决办法]
使用Application[ "Test "]=ex.Message; error.aspx页面取Application[ "Test "].ToString().
[解决办法]
mark
[解决办法]
Application
呵呵
全部游览者共有一个错误信息
???

读书人网 >asp.net

热点推荐