0

未処理の例外が発生した場合でも、Page_Unload が呼び出されます。私はその状況に対処する必要があります。

変数が Page_Unload で正しい状態にない場合、例外をスローする変数状態検証があります。例外は後で によって処理さApplication_ErrorGlobal.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"); 
    }
}

Global.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