在try...catch语句中执行Response.End()后如何停止执行catch语句中的内容
在调用Response.End()时,会执行Thread.CurrentThread.Abort()操作。
如果将Response.End()放在try...catch中,catch会捕捉Thread.CurrentThread.Abort()产生的异常System.Threading.ThreadAbortException。
解决方法(任选一个):
1. 在catch中排除ThreadAbortException异常,示例代码如下:
try { Response.End(); } catch (System.Threading.ThreadAbortException) { } catch (Exception ex) { Response.Write(ex); }
2. 用Context.ApplicationInstance.CompleteRequest()结束当前请求,代码如下:
protected void Page_Load(object sender, EventArgs e) { try { Response.Write("Hello world!"); this.Page.Visible = false; Context.ApplicationInstance.CompleteRequest(); } catch (Exception ex) { Response.Write(ex); } }
✄-------------✎博主签名------------✄
一个人,只有当他的灵魂真正撼动了、刺痛了,他的智慧才可能被空前的发掘。人一旦变得清醒、理智起来,他就一步步靠近了成熟。