.net – Application_Error不会触发?

前端之家收集整理的这篇文章主要介绍了.net – Application_Error不会触发?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Webform1.aspx.cs中:
protected void Page_Load(object sender,EventArgs e)
{
    throw new Exception("test exception");
}

在Global.asax.cs中:

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?

解决方法

它看起来很好,应该调用Application_Error.

您是否通过调试应用程序进行了检查?

实际上你缺少Server.ClearError()所以异常被传递给asp.net但你应该在这里压制它,因为你自己处理它.

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");
    }
}

猜你在找的asp.Net相关文章