回覆列表
  • 1 # 使用者5916393697425

    在捕獲異常的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();不知道這個方法是否可行;

    轉自http://www.cnblogs.com/xyd21c/archive/2011/02/24/1963748.html

  • 中秋節和大豐收的關聯?
  • 無法癒合的傷痕是那歌名?