如果使用 Response.End、Response.Redirect 或 Server.Transfer 方法,将出现 ThreadAbortException 异常。您可以使用 try-catch 语句捕获此异常。
Response.End 方法终止页的执行,并将此执行切换到应用程序的事件管线中的 Application_EndRequest 事件。不执行 Response.End 后面的代码行。
此问题出现在 Response.Redirect 和 Server.Transfer 方法中,因为这两种方法均在内部调用 Response.End。
解决方案 :
要解决此问题,请使用下列方法之一:
• 对于 Response.End,调用 HttpContext.Current.ApplicationInstance.CompleteRequest 方法而不是 Response.End 以跳过 Application_EndRequest 事件的代码执行。
• 对于 Response.Redirect,请使用重载 Response.Redirect(String url, bool endResponse),该重载对 endResponse 参数传递 false 以取消对 Response.End 的内部调用。例如:
Response.Redirect ("nextpage.aspx", false);
相关文章
- java异常处理 throw RuntimeException时不需要同时方法中声明抛出throws 异常等待调用者catch进行捕获 子父类异常问题
- dubbo分布式框架下web层调用业务层一直报空指针异常的解决办法
- IDL调用ENVI-FLAASH大气校正异常退出解决办法
- VS2010 F5调试时出现:“ 尝试运行项目时出错:未捕获通过反射调用的方法引发的异常”解决
- 在使用EF时调用DBFUNCTION扩展方法时,发生ENTITYCOMMANDEXECUTIONEXCEPTION 异常的解决办法
- 捕获异步代码中的异常同步调用
- Scala中的@throws不允许调用Java来捕获正确的异常类型
- linux 下调用Java AWT抛出java.awt.HeadlessException异常解决办法
- 如何在ajax调用成功中访问jquery对象 - 未捕获错误:SYNTAX_ERR:DOM异常12
- 如何使用CaptureStackBackTrace捕获异常堆栈,而不是调用堆栈?