错误码的意义
- 快速定位问题,分为开发人员,商户,用户,三个层面,最好有不同的文案
- 系统中异常定位的凭据,用于异常处理策略
- 记录系统异常的历史,用于报警和监控
- 调用链路排查
会遇到的问题
调用链路较长时,透传和映射的取舍,和逻辑收敛位置,如果每一次调用都进行错误码映射,那就很难定位真实错误原因,如果不进行映射,又会导致系统内部错误码暴露给用户。
异常处理中catch的错误码,如果在代码中定义,维护起来会很麻烦,首先散布在代码库中,不好梳理定位,添加错误码还需要代码上线。
在不同产品线中,对接不同的用户方,需要有不同的错误码策略,比如下游商户,错误码要求是稳定的,如果给出了接口文档以外的错误码会造成商户系统的不稳定,给用户的错误码文案,要有安抚效应,避免暴露真实错误原因,比如银行接口返回用于在黑名单中类似的错误。
咨询一下姐妹们
问了一下他们得业务怎么处理错误码得,得到得结果大概就是要维护一个规范,所有人遵守,保证错误码得有序递增和维护,要依赖开发人员得自觉。
我觉得这个事完全依赖自觉非常不靠谱,首先人员流动问题不可能保证每一个人都熟知既定规范,而且在产品角度,这种规范考虑得不多,类似错误码分段也有很多弊端,业务发展会导致错误码增量不确定,分段得区间不够会破坏最开始得规范,这个依赖的是经验,和对之后业务的规划。
秋天同学的业务报错是带服务名称的,我觉得这是个很好的方式,能够确定业务的报错是由哪个服务引起的。