错误码
目的
- 用来快速定位是谁的问题
- 可在线下轻量化自由沟通
ali标准
错误码为字符串类型,共 5 位,分成两个部分:错误产生来源+四位数字编号。
错误产生来源分为 A/B/C,A 表示错误来源于用户,比如参数错误,用户安装版本过低,用户支付超时等问题;B 表示错误来源于当前系统,往往是业务逻辑出错,或程序健壮性差等问题;C 表示错误来源于第三方服务,比如 CDN 服务出错,消息投递超时等问题;四位数字编号从 0001 到 9999,大类之间的步长间距预留 100。
注意预留宏观错误码用于不好定义场景的错误
错误码之外的业务独特信息由 error_message 来承载,而不是让错误码本身涵盖过
多具体业务属性
处理第三方错误码
接收到第三方错误码后,转译成本系统的错误码,第三方得错误码在错误信息中带上
异常
- Java 类库中定义的可以通过预检查方式规避的 RuntimeException 异常不应该通过catch 的方式来处理
- 异常不要用来做流程控制,条件控制
- catch 时请分清稳定代码和非稳定代码,稳定代码指的是无论如何不会出错的代码。对于非稳定代码的 catch 尽可能进行区分异常类型,再做对应的异常处理。
- 捕获异常是为了处理它,不要捕获了却什么都不处理而抛弃之,如果不想处理它,请将该异常抛给它的调用者。最外层的业务使用者,必须处理异常,将其转化为用户可以理解的内容。
- 不要在 finally 块中使用 return