首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Response.Redirect不可达码

Response.Redirect不可达码
EN

Stack Overflow用户
提问于 2015-02-03 19:47:48
回答 2查看 157关注 0票数 0

有什么情况下红色可以被称为绿色吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-03 19:54:40

这看起来像单元测试覆盖率,由于方法本身还没有返回,所以它仍然应该到达代码。但是,如果您使用的自动化测试实际上参与了HTTP上下文,那么如果响应已经结束,它就不会到达其他代码。

通过将false传递给Redirect(),可以防止响应结束。

代码语言:javascript
复制
Response.Redirect(PageRedirect, false);

,但是,这可能是个坏主意。考虑这段代码所做工作的逻辑流。重定向应该结束响应。如果有更多的服务器端处理要做,您可以选择不结束它,但是这通常是非常不直观的。但是如果服务器端的处理是另一个重定向,那又该怎么办呢?重定向用户两次?重定向一次而忽略第二次?忽略第一个而执行第二个重定向?这太不直观了。

我建议组织代码,以便响应在重定向中终止。虽然从技术上讲,它不是方法中的return,但是在这种情况下,它确实应该被逻辑上当作一个。

票数 4
EN

Stack Overflow用户

发布于 2015-02-03 19:56:43

绝不可能。

大多数代码分析器在HttpResponse.Redirect(url)未被执行后不会找到代码,所以编译器/分析器会抱怨红色代码可能是错误的。

实际上,它总是抛出ThreadAbort异常,以避免无意中运行更多请求处理代码- HttpResponse.Redirect

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28307457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档