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());
      }
     }

  • 相关阅读:
    C基础02天——笔记
    C基础-指针和数组等价转换
    C基础04天—选择排序笔记
    C基础-标准C语言头文件
    C基础-C的关键字
    Ubuntu linux 环境基本使用
    C基础01天——常量变量笔记
    根据评分,用js输出评价星星的样式
    横向滚动条展示 css
    ajax 城市区域选择三级联动
  • 原文地址:https://www.cnblogs.com/vinplezhang/p/3344913.html
Copyright © 2011-2022 走看看