zoukankan      html  css  js  c++  java
  • Thread was being aborted 分析与解决

    在捕获异常的try块中使用
    response.redirect();
    response.write();response.end();
    有时会提示线程已被中止(英文:"Thread was being aborted")错误;(该错误不会每次都产生,在相同地方只是偶尔会出现)
    分析该错误的原因是由于执行这两个命令会重新发起一次请求,将当前请求的进程abort掉;通俗点讲就是当进程还想继续执行的时候, 发现自己已经被调用过Abort方法了. 既然自己作为线程已经被中止, 就无法执行了, 于是exception丢了出来。
    解决方法有如下三种:
    1、将这两个命令放到try/catch块外,不捕获异常就不会提示这个错误;
    2、捕获异常时进行判断:
    try
    {}
    catch(Exception e)
    {
    if(!(ex is System.Threading.ThreadAbortException))
    {
    //在这里显示错误
    }
    }
    3、捕获进程终止错误不做处理
    try
    {}
    catch (ThreadAbortException)
    { }
    catch(Exception ex)
    {
    //显示错误
    }
    有网友说可以在Response.Write();加上Response.Clear();不知道这个方法是否可行;
     
  • 相关阅读:
    bootstrap
    jQuery快速入门
    前端jQuery
    前端BOM和DOM
    前端js
    前端css
    前端知识之HTML内容
    线程池
    线程
    LightOJ
  • 原文地址:https://www.cnblogs.com/xyd21c/p/1963748.html
Copyright © 2011-2022 走看看