Bra*_*don 38 asp.net page-lifecycle
Response.Redirect()是否导致当前运行的方法中止?或者Response.Redirect()之后的代码也执行吗?
(也就是说,在Response.Redirect之后是否需要返回/退出Sub?)
Mar*_*age 51
Response.Redirect
有一个重载接受一个布尔参数,指示调用是否Response.Redirect
应结束响应.在没有此参数的情况下调用重载与指定true
响应应该结束相同.
结束响应意味着Response.End
在修改响应之后调用以使重定向发生,并Response.End
抛出一个ThreadAbortException
终止当前模块.
调用之后的任何代码Response.Redirect
都不会被调用(除非您提供false
额外的参数).实际上,代码finally
和某些catch
处理程序将执行,但你不能吞下一个ThreadAbortException
.
Dav*_*vid 30
这可能不是一个完整的答案,但从我所看到的......
Response.Redirect实际上通过抛出System.Threading.ThreadAbortException导致代码停止执行.
您可以通过在Global.Asax中设置全局错误处理并测试Response.Redirect来自行查看.
编辑
这是支持我的答案的文档的链接:
重定向调用End,在完成时引发ThreadAbortException异常.
HttpResponse.Redirect方法(String,Boolean)(System.Web)
归档时间: |
|
查看次数: |
14539 次 |
最近记录: |