Asp.net ex={无法计算表达式,因为代码已优化或本机帧位于调用堆栈顶部。}
我理解,如果您将Response.Redirect放在try-catch中,您将得到此错误,除非您将重定向的第二个参数指定为false 但是,即使看了这篇文章(),我仍然不明白为什么我必须为这一行代码将其设置为false……在我将其包装在try-catch中之前,对于该参数,我们一直都是true:Asp.net ex={无法计算表达式,因为代码已优化或本机帧位于调用堆栈顶部。},asp.net,Asp.net,我理解,如果您将Response.Redirect放在try-catch中,您将得到此错误,除非您将重定向的第二个参数指定为false 但是,即使看了这篇文章(),我仍然不明白为什么我必须为这一行代码将其设置为false……在我将其包装在try-catch中之前,对于该参数,我们一直都是true: Response.Redirect(SecureUrl("Confirmation", SessionID), true); 我们想关闭它,因为这是该行的结尾..确认页。但是当这被包装在try-ca
Response.Redirect(SecureUrl("Confirmation", SessionID), true);
我们想关闭它,因为这是该行的结尾..确认页。但是当这被包装在try-catch中时,我得到了这个错误。我只是想更好地理解为什么是假的。我读了这篇文章,它没有向我跳出来。如果将
true
作为第二个参数传递,它将抛出ThreadAbortException
以停止处理请求
ASP.Net内部的代码将捕获ThreadAbortException
,调用Thread.ResetAbort
,并发送(HTTP 301)响应
如果您有一个catch
块,您还将看到ThreadAbortException
,就像您看到任何其他异常一样
最好是在catch块之前为ThreadAbortException
添加一个空catch块,如下所示:
} catch(ThreadAbortException) { throw; }