gpt4 book ai didi

c# - Application_Error 即使处理异常也会触发

转载 作者:行者123 更新时间:2023-11-30 16:23:41 24 4
gpt4 key购买 nike

如果 URL 存在,我有一些代码可以显示按钮:

try
{
string dashboardURL = Config.RootUrl + "/Dashboard/Default.aspx";
WebRequest req = WebRequest.Create(dashboardURL);
WebResponse response = req.GetResponse();
btnDashboard.Visible = true;
}
catch (Exception)
{
btnDashboard.Visible = false;
}

但是,在调试时,req.getResponse() 会导致 Application_Error 触发。我检查了这里捕获的异常,它是一个 System.Net.WebException。我的理解是 Application_Error 因未处理的异常而被触发。

如果我改变代码强制异常如下:

try
{
string dashboardURL = Config.RootUrl + "/Dashboard/Default.aspx";
WebRequest req = WebRequest.Create(dashboardURL);

int j = 0;
int i = 1 / j;

WebResponse response = req.GetResponse();
btnDashboard.Visible = true;
}
catch (Exception)
{
btnDashboard.Visible = false;
}

然后 Application_Error 没有被触发,这很好。使用 GetResponse() 处理错误是否有什么特别之处总是导致 Application_Error 触发,即使异常已被处理?

最佳答案

在 Application_Error 检查异常:

var exception = Server.GetLastError();

用这段代码不可能触发 Application_Error。您的异常必须在此 try/catch block 之后。

同时尝试清理并重建您的解决方案,或强制重新创 build 计器文件(更改 aspx 文件中的内容)。

我在不同的 ASP.NET 版本上测试了您的代码,即使在 MVC3/MVC4 环境中,也从未触发过 Application_Error!

关于c# - Application_Error 即使处理异常也会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11326192/

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