甚至触发处理异常的Application_Error
作者:互联网
如果存在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触发?
解决方法:
/Dashboard/Default.aspx是否在同一服务器/应用程序中?
如果是这样,那么对该请求的处理可能会导致将由Application_Error捕获的错误.原因是通过执行GetResponse()您正在执行HTTP请求,并且调用代码上的try / catch不会处理在(可能)远程服务器上处理请求时发生的任何异常.在您的特殊情况下,远程服务器=本地服务器,但是这个想法没有改变.
标签:global-asax,exception-handling,webforms,c,application-error 来源: https://codeday.me/bug/20191201/2078347.html