|M| 将才做的错误处理有一个天大的错误

zyciis258 2007-05-17 06:20:56
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的时候出错他也没有办法执行这条语句
...全文
580 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
BlueMountain_1980 2007-05-18
  • 打赏
  • 举报
回复
来晚了
真相重于对错 2007-05-17
  • 打赏
  • 举报
回复
Application
呵呵
全部游览者共有一个错误信息
???
goodluckalong 2007-05-17
  • 打赏
  • 举报
回复
mark
  • 打赏
  • 举报
回复
使用Application["Test"]=ex.Message; error.aspx页面取Application["Test"].ToString().
zyciis256 2007-05-17
  • 打赏
  • 举报
回复
“将才” 打错 是“刚才”
呵呵
wszhoho 2007-05-17
  • 打赏
  • 举报
回复
将才,什么地方的方言,桐城?
kimmking 2007-05-17
  • 打赏
  • 举报
回复
1 异常记日志《log4net,db等》
2 自定义错误信息提示给用户。
zyciis256 2007-05-17
  • 打赏
  • 举报
回复
找到了是这里
String RePath = String.Format("/web/error/404page.aspx?aspxerrorpath={0}&Error={1}&Detail={2}", Path, Server.UrlEncode(ex.Message), Server.UrlEncode(ex.ToString()));
我改成
String RePath = String.Format("/web/error/404page.aspx?aspxerrorpath={0}&Error={1}", Path, Server.UrlEncode(ex.Message));
这里出错的原因是因为
加上Server.UrlEncode(ex.ToString())
这个的话那个跳转的长度太大引起不跳转
那如何来传他的这个值过去呢
  • 打赏
  • 举报
回复
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跳转页面出错.
检查那些页面的路径是否对的,或者加个测试页面试一下.
真相重于对错 2007-05-17
  • 打赏
  • 举报
回复
web/Default.aspx
而不是
/web/error/404page.aspx
========
Response.Redirect(String.Format("/web/error/404p
这里
zyciis256 2007-05-17
  • 打赏
  • 举报
回复
可以

无法显示网页
您正在查找的页当前不可用。 网站可能遇到支持问题,或者您需要 调整您的浏览器设置。
的地址是
web/Default.aspx
而不是
/web/error/404page.aspx

他是还没有跳转过去
真相重于对错 2007-05-17
  • 打赏
  • 举报
回复
/web/error/404page.aspx
网站根目录下游览这个网页看可不可以
zyciis256 2007-05-17
  • 打赏
  • 举报
回复
Response.Redirect
我的报
无法显示网页
您正在查找的页当前不可用。 网站可能遇到支持问题,或者您需要 调整您的浏览器设置。
真相重于对错 2007-05-17
  • 打赏
  • 举报
回复
Response.Redirect可以
/web/error/404page.aspx ??
根目录下的??
zyciis256 2007-05-17
  • 打赏
  • 举报
回复
大家没有明白我的意思 我的是
web/Default.aspx
protected void Page_Load(object sender, EventArgs e)
{
throw new Exception("出错");
}

的时候Groble中的
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())));
}
并不会跳转到error/404page.aspx
而是报:
无法显示网页
您正在查找的页当前不可用。 网站可能遇到支持问题,或者您需要 调整您的浏览器设置。
amandag 2007-05-17
  • 打赏
  • 举报
回复
使用自定义的异常处理类,写入日志
  • 打赏
  • 举报
回复
有两个在异常未处理时将被ASP.NET调用的事件:

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

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

这两个事件的执行顺序是——先执行Page_Error,后执行Application_Error。如果希望在Page_Error中处理过的错误就不要再在Application_Error中处理,我们可以在Page_Error中处理错误之后,使用Server.ClearError方法清除最后一个错误,避免再调用Application_Error
hertcloud 2007-05-17
  • 打赏
  • 举报
回复
错误 信息 对于 客户是 严重多于 和 不友好的.

应该使用 异常处理类 在遇到异常的 时候进行文件日志记录.
zyciis257 2007-05-17
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
throw new Exception("出错");
}
我这个不是放在404page.aspx
而是别的页面
如default.aspx
  • 打赏
  • 举报
回复
可以捕捉实现的的~~~给页面写个Page_Error事件,在将错误参数等方式递交到你的错误页面,自己可以调一下.

protected void Page_Error(object sender, EventArgs e)
{
Exception error = HttpContext.Current.Server.GetLastError();
.
.捕捉错误...
.
Response.Redirect("error.aspx?Path=......"+"错误信息等");
}
加载更多回复(7)

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧