0

即使发生未处理的异常,也会调用 Page_Unload。我需要处理这种情况。

当变量在 Page_Unload 中的状态不正确时,我有一个变量状态验证抛出异常。该异常稍后由Application_Errorin处理Global.asax。当另一个异常已经发生时,我需要抑制抛出异常。

这页纸:

public partial class _Default : System.Web.UI.Page
{
    private int tst = 0;
    protected void Page_Load(object sender, EventArgs e)
    {
        tst = tst / tst; //causes "Attempted to divide by zero."
        tst = 1;
    }
    protected void Page_Unload(object sender, EventArgs e)
    {
        if (tst == 0) throw new Exception("Exception on unload"); 
    }
}

全球.asax:

void Application_Error(object sender, EventArgs e)
{
    // Get the error details
    Exception lastErrorWrapper = Server.GetLastError();
    System.Diagnostics.Debug.Print(lastErrorWrapper.Message);
}

我需要得到“试图除以零”。Global.asax但我得到“卸载异常”

给出的例子被大大简化了。真实情况包括一个用户控件和一个条件编译。

我不允许解决情况Page_Load(例如通过捕获异常)。

4

1 回答 1

0

你为什么不使用这样的 global.asax 方法

void Application_Error(object sender, EventArgs e)
        {
            // Code that runs when an unhandled error occurs
            // Get the error details
            Exception lastErrorWrapper = Server.GetLastError();            
            System.Diagnostics.Debug.Print(lastErrorWrapper.Message);
            Response.Redirect("~/error.aspx?q=" + lastErrorWrapper.Message);
        }

然后它不会在这里显示错误,备用是:

在 web.config 中设置自定义错误页面

<customErrors mode="On" defaultRedirect="mypage.aspx">   
    </customErrors>

问候

于 2013-05-07T09:56:11.363 回答