繁体   English   中英

response.redirect并抛入catch块

[英]response.redirect and throw in catch block

在以下场景中会发生什么? 它会在response.redirect之后抛出工作吗?

或者我需要在main方法的catch块中使用Response.Redirect,它会抛出异常调用堆栈....

try
{    
//code
}
catch(Exception ex)
{    
Response.Redirect("Error.aspx");
throw;    
}

由于您未提供参数来指示当前页面是否应继续执行,因此它将通过调用End()自动终止页面。 使用带有单个参数的方法与使用两个参数调用方法相同,第二个(endResponse)设置为true 由于End()导致抛出异常,因此它不会到达throw语句。

参考: http//msdn.microsoft.com/en-us/library/a8wa7sdt.aspx

在页面处理程序中使用此方法终止对一个页面的请求并为另一个页面启动新请求时,请将endResponse设置为true或调用Redirect方法重载。 此方法为原始请求调用End,该请求在完成时抛出ThreadAbortException异常。

如果希望页面继续执行,则需要使用带有两个参数的签名,并将endResponse参数设置为false

如果你调用Response.Redirect(没有重载),那么它应该立即停止执行,因此不会引发throw。

但是,如果你使用重载并传入false,例如。 Response.Redirect("Error.aspx", false)然后它将继续执行页面然后重定向。

(至少,这是我对文档的理解

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM