zoukankan      html  css  js  c++  java
  • Response.End抛出ThreadAbortException 异常

    最近在写程序过程中遇到了一个匪夷所思的错误:Response.End()方法抛出了ThreadAbortException异常,我的代码如下:

    public void doResponse(){
          string username=Request.Params["username"];
          string password=Request.Params["password"];
          try{
              var result=bo.doValidateUserInfo(username,password);
              string msg=string.Empty;
              if(result==UserLoginStatus.Error){
                  msg="用户登录失败";
              }else if(result== UserLoginStatus.Success){
                  msg="用户登录成功";
              }else if(...){
                  ...
              }
              Response.Writer(msg);
              Response.End();
          }catch(Excetpion ex){
             // log the error
          }   
    }

    比较郁闷的就是上边的这样的代码,在Response.End()地方就会出现ThreadAbortException错误。

    • 问题原因:

    ThreadAbortException能屏蔽还是屏蔽,因为ThreadAbortException是一个很匪夷所思的异常:在.net中它如果不捕获,就不会抛出异常;只是简单的终止当前线程,而其他线程继续运行不受影响。

    不过这样解释比较牵强吧,但事实就是这样子,也更找不到其他更好的答案来解释。

    修改程序为:

    public void doResponse(){
          string username=Request.Params["username"];
          string password=Request.Params["password"];
          try{
              var result=bo.doValidateUserInfo(username,password);
              string msg=string.Empty;
              if(result==UserLoginStatus.Error){
                  msg="用户登录失败";
              }else if(result== UserLoginStatus.Success){
                  msg="用户登录成功";
              }else if(...){
                  ...
              }
              Response.Writer(msg);
          }catch(Excetpion ex){
             // log the error
          }finally{
              Response.End();          
          }
    }

    不管如何吧,希望大家能解决自己的问题。

  • 相关阅读:
    Tomcat建立多个应用(Web Server),多个主机,多个站点的方法
    Spring 注解bean默认名称规则
    spring+springMVC,声明式事务失效,原因以及解决办法
    Spring事务失效的原因
    MySQL 对于千万级的大表要怎么优化?
    前端开发利器: Bootstrap + AngularJS
    scrapy爬取段子
    scrapy安装
    xpath和CSS选择器
    pycharm远程登录mysql
  • 原文地址:https://www.cnblogs.com/yy3b2007com/p/6161122.html
Copyright © 2011-2022 走看看