遵循:永不相信外部系统,永远相信内部系统
对前端/上游服务传来的参数做最严格的校验,不对传来的参数有任何假设
对下游服务的返回值做最严格的校验,不对返回的结果有任何假设
对内部系统做宽松的校验,let...日志级别 打印标准
Fatal 一个或多个关键业务功能不符合预期,导致整个系统无法正常运行
Error 一个或多个功能不符合预期,导致部分功能无法正确运行
Warn 发生了不符合预期的行为,但相关功能仍能正常运行...发生了非预期的情况
如果打印error级别log,则认为一定发生了非预期的情况。例如mysql/下游挂了或自己代码中有bug,发生了从未考虑过的情况。...这样会造成:
错误日志很多,并且都是重复错误,对排查造成干扰
打印的是原始错误,有些是其他http接口返回的错误,很难找到到底是哪里出现的,什么原因。...然后就需要通过字符串匹配,判断 err.Error()中的信息,这是非常不合理的。
建议
处理错误的原则:只处理(打印)一次错误
如果错误不需要被处理,添加上下文信息,并返回给上层,不需要打印。