Redirect 调用 End,该方法在完成时引发 ThreadAbortException 异常。

解决方案 »

  1.   

    try
    { if (successurl != null && successurl.Trim() != "")
    {
        Response.Redirect(successurl);
        Response.End();
    }
      }
    catch (Exception e)
    {
    Response.Write(e2.ToString()+"<br>");
    Response.End();
    if (errorurl != null && errorurl.Trim() != "")
    Response.Redirect(errorurl);
    }//然后监视e的值
      

  2.   

    try{    if (successurl != null && successurl.Trim() != ""){
           Response.Redirect(successurl);
           'Response.End();//delete
        }
      }
    catch (Exception e2){
           Response.Write(e2.ToString()+"<br>");
          'Response.End();//delete
           if (errorurl != null && errorurl.Trim() != "")
            Response.Redirect(errorurl);
    }
      

  3.   


    try{    if (successurl != null && successurl.Trim() != ""){
           Response.Redirect(successurl);
           'Response.End();//delete
        }
      }
    catch (Exception e2){
           Page.RegisterStartupScript("exceptionMessage", "<script>alert('" + e2.ToString()+ "');</script>")
          'Response.End();//delete
           if (errorurl != null && errorurl.Trim() != "")
            Response.Redirect(errorurl);
    }
      

  4.   

    首先谢谢大家的支持,我试了以上的方法都不行,但我把Response.Redirect(errorurl);注销后就可以执行第一个语句
      

  5.   

    你catch写错了吧。
    try
    {
    if (successurl != null && successurl.Trim() != "")
    {
        Response.Redirect(successurl);
        Response.End();
    }
      }
    catch(Exception e2)
    {
    Response.Write(e2.ToString()+"<br>");
    Response.End();
    if (errorurl != null && errorurl.Trim() != "")
    Response.Redirect(errorurl);
    }
      

  6.   

    是我贴错了,原来的代码
    try
    {
    if (successurl != null && successurl.Trim() != "")
    {
        Response.Redirect(successurl);
        Response.End();
    }
      }
    catch(Exception e2)
    {
    Response.Write(e2.ToString()+"<br>");
    Response.End();
    if (errorurl != null && errorurl.Trim() != "")
    Response.Redirect(errorurl);
    }
    没有输出e2的错误,并且Resposne.end 好象没执行,要不然怎么会执行
     Response.Redirect(errorurl);语句呢,
    注销Response.Redirect(errorurl);就可以执行 Response.Redirect(successurl);
    或注销 Response.Redirect(successurl);就不会执行Response.Redirect(errorurl);
    抛不出错误,却执行 Response.Redirect(errorurl);
    很奇怪,好几天都没搞定,我原本的意思是执行一段代码,如果正确就转向一个页面,否则就转向另一个页面,并且这两个页面是用户指定的,用户可以自己定义
      

  7.   

    这样做:
    try
    { if (successurl != null && successurl.Trim() != "")
    {
    Response.Redirect(successurl);
    Response.End();
    }
    }
    catch(Exception ex)
    {
    bool bValue = ex is ThreadAbortException;
    if (!bValue)
    {
    Response.Write(e2.ToString()+"<br>");
    Response.End();
    if (errorurl != null && errorurl.Trim() != "")
    Response.Redirect(errorurl);
    }
    }