商户注册——异常处理

2.4.5 异常处理

2.4.5.1 异常信息格式

系统在交互中难免会有异常发生,前端为了解析异常信息向用户提示定义了异常信息的返回格式,如下:

1、返回response状态说明

状态码 说明
200 成功
401 没有权限
500 程序错误(需要自定义错误体)

2、自定义错误体

    {
   
        "errCode": "000000", "errMessage": "错误说明" 
    }            
2.4.5.2 异常处理流程
 {
               
    "timestamp": "20**20**‐**09**‐10T10:06:19.936 +0000", 
    "status": 500,     
    "error":  "Internal Server Error", 
    "message": "验证码错误",      
    "path":  "/merchant/merchants/register"            
 }        

截至目前系统并没有按照前端要求返回异常信息,测试如下: 注册商户时输入一个错误的验证码,返回信息如下:

从上边的返回信息得知,状态码为500符合要求,按前端的规范定义的错误信息要写在“errMessage” 中,显然不符合要求。

系统规范了异常处理流程,如下:
在这里插入图片描述

1、在服务层抛出自定义异常类型及不可预知异常类型。

​ 上图中BusinessException为系统的自定义异常类型,程序中在代码显示抛出该异常,此类异常是程序员可预知的。

​ 另一部分是系统无法预知的异常,如:数据库无法连接,服务器宕机等场景下所抛出的异常,此类异常是程序员无 法预知的异常。

2、应用层接收到服务层抛出异常继续向上抛出,应用层自己也可以抛出自定义异常类型及不可预知异常类型。

3、统一异常处理器捕获到异常进行解析。

​ 判断如果为自定义异常则直接取出错误代码及错误信息,因为程序员在抛出自定义异常时已将错误代码和异常信息指定。

​ 如果为不可预知的异常则统一定义为99999异常代码。

​ { “errCode”: “000000”, “errMessage”: “错误说明” }

4、统一异常处理器将异常信息格式为前端要求的格式响应给前端。服务端统一将异常信息封装在下边的Json格式中返回。

2.4.5.3 自定义业务异常类

1、在huiminpay-common工程的com.huiminpay.cache.common.domain包下添加业务异常编码


package com.huiminpay.common.cache.domain;


/**
 * 异常编码 0成功、-1熔断、 -2 标准参数校验不通过 -3会话超时
 * 前两位:服务标识
 * 中间两位:模块标识
 * 后两位:异常标识
 */
public enum CommonErrorCode implements ErrorCode {
   
	
	公用异常编码 //

	E_200201(200101,"传入对象为空"),
	E_200202(200102,"参数为空"),
	E_200203(200103,"手机号已存在"),
	E_200204(200104,"租户为管理员,不可删除"),
	E_200205(200105,"账号被其他租户使用,不可删除"),
	E_200206(200106,"角色被使用中,不可删除"),
	E_200207(200107,"查询结果为空"),
	E_200208(200108,"账号不存在"),
	E_200209(200109,"支付渠道参数不能为空"),
	E_200210(200110,"应用未绑定平台渠道"),
	E_200211(200111,"商户下未设置根门店"),
	E_200212(200112,"商户应用支持的聚合平台支付渠道不能为空"),
	E_200213(200113,"支付金额不能为空"),
	E_200214(200114,"openId不能为空"),
	E_200215(200115,"获取支付状态超时"),
	E_200216(200116,"授权码为空"),
	E_200217(200117,"订单标题为空"),
	E_200218(200118,"订单金额为空"),
	E_200219(200119,"订单金额格式有误"),
	E_200220(200120,"授权码格式有误"),
	E_200221(200121,"角色为空"),
	E_200222
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小天博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值