未処理の例外が発生した場合でも、Page_Unload が呼び出されます。私はその状況に対処する必要があります。
変数が Page_Unload で正しい状態にない場合、例外をスローする変数状態検証があります。例外は後で によって処理さApplication_Error
れ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");
}
}
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
(たとえば、例外をキャッチすることによって)。