系统返回码规则建议

Posted zero13_小葵司

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统返回码规则建议相关的知识,希望对你有一定的参考价值。

为什么要统一返回码

返回码返回与传达了系统发生了什么,对于定位问题,找到解决方案是非常重要的一环。要使用好返回码,也需要对于异常处理错误处理有良好的理解。

返回码反映了系统的异常情况,异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮、易于调试。异常之所以是一种强大的调试手段,在于其回答了以下三个问题:

  • 什么出了错?
  • 在哪出的错?
  • 为什么出错?

在有效使用异常的情况下,异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出,如果你的异常没有回答以上全部问题,那么可能你没有很好地使用它们。有三个原则可以帮助你在调试过程中最大限度地使用好异常,这三个原则是:

  • 具体明确
  • 提早抛出
  • 延迟捕获

异常可以在系统内处理,但是对于系统平台的异常,为了让其他系统知道自己发生了什么,就需要有返回码。

在微服务系统中,因为系统众多,交互众多,如何在一次业务请求中,快速定位到系统异常,并便于监控报警系统搜集报警,都需要有统一的返回码规则。

 

 

返回码规则

基本规则

  • 返回码由2部分组成
    • 第一部分表示系统编号,由2位到3位大写英文字母组成,如:US->用户微服,PD->产品微服,UB->用户授信基础服务
    • 第二部分表示系统错误类型,由固定长度2位,大写英文字母或数字及组合构成,如:99(未知异常),96(调用下游系统无响应)
    • 组合好之后形成,如:US99(用户微服发生未知异常),UB96(用户授信基础服务调用下游系统无响应)
  • 特殊返回码
    • 成功:0000 或 0(如果返回成功,固定使用0000或0,不携带系统编号)
  • 系统内返回码传递
    • 系统内返回码,如果不涉及到返回给外部(如客户端、第三方平台),可透传返回码
    • 前置系统不可将系统内返回码直接透传出去
    • 前置可作为统一搜集返回码之用,并将返回码报送至监控报警系统,便于统一监控报警分析
  • 建议返回码错误类型(各个系统可根据实际情况,重新定义返回码,具体以各个系统自己的返回码为准)
    • 业务失败
      • 01:提现已结清,无需还款
      • 02:还款上报期数包含已还期数,不能执行还款操作
      • 03:重复流水号
      • 04:订单处理中
      • 05:绑卡已达到上限
      • 06:无效卡号
      • 07:无效手机号
      • 08:此卡号已绑定
      • 09:暂不支持该卡
      • 10:验证码已交验过,请重新获取
      • 11:请先获取短信验证码
      • 12:短信验证码不正确
      • 13:短信验证码已过期
      • 14:订单无效或已过期
      • 15:金额或周期无效
      • 16:产品编号错误
      • 17:无订单记录
      • 18:订单无效
    • 系统错误
      • 90:系统繁忙,请稍后重试
      • 91:下游系统响应超时
      • 92:下游系统找不到或无法达到
      • 93:数据库连接错误
      • 94:数据库操作异常
      • 99:未知异常
    • 安全(权限)错误
      • 61:该用户无权限进行此操作
      • 62:操作过于频繁
    • 参数错误
      • 40:必填参数为空
      • 41:必填参数无效
      • 42:相应数据无效
      • 43:签名校验失败
      • 44:token不匹配
      • 45:token已失效
      • 46:请求参数错误
    • 风控失败
      • 21:用户处于风控管控期
      • 22:已有额度,不可再次申请
      • 23:人行征信存在负面信息
      • 24:申请评分过低
      • 25:客户资质过低
      • 26:欺诈嫌疑或黑名单
      • 27:有进行中订单
      • 28:有拒绝记录
      • 29:重复申请
    • 平台方错误(资方、渠道)

 

以上是关于系统返回码规则建议的主要内容,如果未能解决你的问题,请参考以下文章

HTTP请求(CloseableHttpClient是否就是HTTP协议规则的实现?)

使用 php 返回码 77 执行系统命令

下游提供无效数据时向客户端发送 Http 状态码

条型码编码规则是怎样规定的?

应用回溯算法寻找毕业的最小学期数

重构系统的套路-提高并发能力