支付宝账户通项目感想
2013-09-28 23:19 VinpleZhang 阅读(276) 评论(0) 编辑 收藏 举报设计异常类
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());
}
}