如何处理ThreadAbortException而不为Response.End指定False

时间:2010-04-26 21:38:35

标签: c# asp.net

我知道关于这个异常的所有内容,请阅读这里的msdn文章http://support.microsoft.com/kb/312629/EN-US/但是当我的老板不希望我为Response.End投入错误时,我不知道如何处理这个问题。

这就是我所拥有的:

        else 
        {
 try
 {
  VoidlOrder(transactionID);
 }
 catch (Exception ex)
 {
  LogError(ex.ToString());
 }
 finally
 {
     RedirectUser(sessionID,"showfmsg=1", true);
 }
        }

RedirectUser只是我们运行的一个实用工具方法,最终为reponse.redirect resopnse.end param传入true。

那么还有什么其他选择,除了把这个param作为假?他说要抓住它并做点什么......好吗?我没有看到任何其他修复,而不是每次都将false发送到此调用,因为我无法通过此异常..我每次都得到它。

已更新

尝试了这个但是我仍然在外部catch中遇到了一个threadabortexception:

          else 
        {
                try
                {

                    VoidOrder(transactionID);
                }
                catch (Exception ex)
                {
                    LogError(ex.ToString());
                }
                finally
                {
                    try
                    {
                    RedirectUserBackToCheckout(sessionID, "showfmsg=1", true);
                    }
                    catch (ThreadAbortException)
                    {

                    }

                }
        }
    }
    catch (Exception ex)
    {
        // some other logic
    }

1 个答案:

答案 0 :(得分:2)

你的问题没有意义,但你可能正在寻找

catch(ThreadAbortException) { Thread.ResetAbort(); }

<击>

编辑:您需要在Thread.ResetAbort();区块中致电catch