C# 从Response.redirect引发的ThreadAbortException未被应用程序捕获\u错误

C# 从Response.redirect引发的ThreadAbortException未被应用程序捕获\u错误,c#,asp.net,C#,Asp.net,我有一些调用Response.Redirect的代码,它抛出了ThreadAbortException。我可以看到它发生在调试器中,但是没有调用Application\u Error方法。如果在异常中代码中断后使用F5,代码将继续运行 如果我故意在Response.Redirect之前抛出异常,它将通过Application\u Error方法 所以我不明白为什么ThreadAbortException的处理方式不同。这也是我们生产现场的一个难题。我可以看到ThreadAbortExceptio

我有一些调用Response.Redirect的代码,它抛出了ThreadAbortException。我可以看到它发生在调试器中,但是没有调用Application\u Error方法。如果在异常中代码中断后使用F5,代码将继续运行

如果我故意在Response.Redirect之前抛出异常,它将通过Application\u Error方法

所以我不明白为什么ThreadAbortException的处理方式不同。这也是我们生产现场的一个难题。我可以看到ThreadAbortException出现在开发环境中,我希望它们出现在生产环境中,但没有线索。生产运行良好,可能是因为同样的原因,我没有看到ThreadAbortExceptions像我预期的那样得到处理

如果有人能帮助解决可能发生的问题,我将不胜感激。

线程中止异常基本上是中止线程的内部信号。这是一个有点特殊的例外-它无法被捕获,它将始终自动重新启动,并且不会关闭您的应用程序


在您的情况下,这是由您使用Response.Redirect引起的-无论何时您使用结束请求的变量,它都会这样做。这基本上是短路请求并在不执行其余请求的情况下发送重定向。通常有更好的重定向方法,但这并不真的有害。

谢谢,这肯定能解释很多问题。我确实有代码来做响应。重定向方式不同,但我必须在继续更改之前理解上述行为。