gpt4 book ai didi

c# - 如何在Page_Unload中检测到未处理的异常已经发生?

转载 作者:行者123 更新时间:2023-12-03 08:58:17 25 4
gpt4 key购买 nike

即使发生未处理的异常,也会调用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中的问题(例如,通过捕获异常)。

最佳答案

你为什么不这样使用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>

问候

关于c# - 如何在Page_Unload中检测到未处理的异常已经发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16415625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com