zoukankan      html  css  js  c++  java
  • 支付宝账户通项目感想

    设计异常类

    TaoBaoSysNoReturnException   只需打印给本地服务器后台日志,用户调试自己用
    TaoBaoSysReturnException  返回给支付宝看的的错误信息
    DataBaseException 数据库异常,既可以返回给支付宝,也可以打印在本地服务器日志
    TaoBaoCommonException 一些字段校验的异常,有不为空,字段长度等

     还有亮哥说 异常如果不是用来传递数据的话  简直就没什么用了!

    异常类抛出层次  一级一级反馈

    a()thorows DataBaseException{

    b();

    }

    b()throws DataBaseException(){

    if (CommonUtil.isEmpty(entity.getUUID()))
       throw new DataBaseException("唯一编码不能为空!");

    try {
       entity.setMakeDate(CommonUtil.getCurrStrDate());
       entity.setMakeTime(CommonUtil.getCurrentTime());

       dao.updateByPrimaryKey(TaoBaoSerialLogMapper.class, entity);
      } catch (Exception e) {
       e.printStackTrace();
       throw new DataBaseException("数据库异常!");
      }

    }

    项目实际案例

    public void deal(HttpServletRequest req, HttpServletResponse res,
       byte[] byteInputStream, String checkOpenFlag, String comCode,
       String rootpath) {
      mRequest = req;
      mResponse = res;
      try {
       // 1.MD5校验 MD5CheckException
       checkMD5(byteInputStream, checkOpenFlag, comCode, mRequest
         .getParameter("sign"));

       // 2.判断是否存在日志目录,不存在则创建
       createDir(rootpath);

       // 获取JDOM对象
       mNoStdDocumentRequest = getDocument(byteInputStream);

       // 3.备份非标准报文
       backNoStdFile();

       // 4.将DOUMENT是数据存入baseinfo,并校验
       mBaseInfoUtil = insertBaseInfo(rootpath);

       // 5.核保接口中增加字段类型判断,如果判断错误,则返回错误提示信息 CheckInfoException
       checkInfo();

       // 6.校验商家编码
       checkTBPlan();

       // 7.接收报文转换
       mStdDocumentRequest = requestTransfer();

       // 8.防止多次点击校验 包括核保、出单多次点击校验、出单报文校验核保成功、 幂等性校验
       if (!doubleClick()) {
        // 9.校验身份证信息
        checkIDAndName();

        return2TaoBao();
       }
      } catch (TaoBaoSysNoReturnException eTaoBaoSysNoReturnException) {
       eTaoBaoSysNoReturnException.printStackTrace();
       logger.info(eTaoBaoSysNoReturnException.getMessage());
       returnError(eTaoBaoSysNoReturnException.getMessage());
      } catch (TaoBaoSysReturnException eTaoBaoSysReturnException) {
       eTaoBaoSysReturnException.printStackTrace();
       logger.info(eTaoBaoSysReturnException.getMessage());
       returnSysError(eTaoBaoSysReturnException.getMessage());
      } catch (DataBaseException eDataBaseException) {
       eDataBaseException.printStackTrace();
       logger.info(eDataBaseException.getMessage());
       returnSysError(eDataBaseException.getMessage());
      } catch (TaoBaoCommonException eTaoBaoCommonException) {
       eTaoBaoCommonException.printStackTrace();
       logger.info(eTaoBaoCommonException.getMessage());
       returnCommnonError(eTaoBaoCommonException.getMessage());
      }
     }

  • 相关阅读:
    Tomcat,Weblogic,WebSphere,JBoss四种服务器简单对比
    最常用的动态sql语句梳理——分享给使用Mybatis的小伙伴们!
    "Invalid bound statement (not found): com.sitech.admin.dao.TbOpenAbilityInfoDao.findAbilityReadyUp"mybatis配置文件bug
    "Cannot convert value '0000-00-00' from column 2 to TIMESTAMP"mysql时间转换bug
    你一定要知道的关于Linux文件目录操作的12个常用命令
    超实用,你get了吗?再也不怕本地文件更新到环境用Linux命令重启服务器了。。。
    最长连续公共子串、最长公共子串(可以非连续)、最长回文串(连续)、最长回文串(可以不连续)、最长递增数组的求解
    显示锁(ReentranLock)
    对象的共享
    线程安全性
  • 原文地址:https://www.cnblogs.com/vinplezhang/p/3344913.html
Copyright © 2011-2022 走看看