首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Application_Error不会触发?

Application_Error不会触发?
EN

Stack Overflow用户
提问于 2011-04-09 17:31:04
回答 2查看 5.1K关注 0票数 6

在Webform1.aspx.cs中:

代码语言:javascript
运行
复制
protected void Page_Load(object sender, EventArgs e)
{
    throw new Exception("test exception");
}

在Global.asax.cs中:

代码语言:javascript
运行
复制
protected void Application_Error(object sender, EventArgs e)
{
    // Code that runs when an unhandled error occurs
    if (Server.GetLastError() is HttpUnhandledException)
        Server.Transfer("ErrUnknown.aspx");
}

但是Application_Error事件处理程序从未被调用过。相反,我得到了一个运行时错误页面。

在抛出异常之后,我应该怎么做才能调用Application_Error?

EN

回答 2

Stack Overflow用户

发布于 2011-04-09 17:42:49

它看起来很好,并且应该调用Application_Error。

你有没有通过Debugging检查你的申请?

实际上,你遗漏了Server.ClearError(),所以异常会被传递给asp.net,但是你应该在这里抑制它,因为你自己在处理它。

代码语言:javascript
运行
复制
protected void Application_Error(object sender, EventArgs e)
{
    // Code that runs when an unhandled error occurs
    if (Server.GetLastError() is HttpUnhandledException)
    {
        // suppressing the error so it should not pass to asp.net
        Server.ClearError();
        Server.Transfer("ErrUnknown.aspx");
    }
}
票数 5
EN

Stack Overflow用户

发布于 2011-04-09 18:36:01

我找到问题了。

代码语言:javascript
运行
复制
Server.Transfer("ErrUnknown.aspx")

就是原因。

当我尝试在浏览器中直接查看'ErrUnknown.aspx‘时,我意识到我在该页面中有一个错误。更正之后,Server.Transfer就可以正常工作了

虽然是误导性的,但在调试应用程序时事件不会触发吗?

不管怎么说。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5604144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档