对于调用三方库获取的报错,一般将额外信息(比如调用参数,上下文信息等方便定位问题的信息)包装之后向上层调用方直接抛出:if _,err:=ioutil.ReadAll(r);err!=nil{return fmt.Errorf("read file failed:%w", err)}// 调用方if err!=nil{if errors.Is(err, io.EOF){...}}关于错误日志的处理部分,为了防止处处打日志造成的上下文信息分散和大量信息冗余,一般建议的处理方式是对于内部方法的调用,使用%w包装错误和必要的额外信息,直接返回到上层;对于最外层方法(一般是http handler或者rpc handler),将错误包装上下文,打印到错误日志中,再使用errors.Is或者errors.As方法,根据错误类型进行不同的错误处理逻辑 。这样的好处是,对于全局而言,有且只有最外层一份错误日志,而这个错误信息时包装了层层调用信息的,内容最为齐全 。
推荐阅读
-
诺基亚爱立信|商务部将阻止诺基亚爱立信在华制造产品运往他国?汪文斌回应
-
扬眼|“天天向上”12岁庆生,王一博赵丽颖首度合体
-
张杰:我用实力说话,三声“谢谢”,从此老死不相往来!
-
-
大国军武疫情失控真正原因,总统该为四大失误负责,美疾控中心发布报告
-
逸仙谈历史此国的年轻人居然看不懂宪法和历史!只因曾经的领导人一个举动
-
「北京地坛医院」密云新增1例,累计6例,均属同一家庭,全部在地
-
-
36氪唯品会“出圈”:增长乏力 ,想“咸鱼翻身”不容易
-
-
『陈乔恩』LOL季中杯A组前瞻:T1晋级十拿九稳;FPXTES能否突破“慢热”瓶颈
-
昭明文选是谁主持编写的,昭明文选的作者是谁昭明文选的作者
-
-
首都医科大学研究生院的各个附属医院中,哪所医院的骨科比较牛?哪所医院离北京航空航天大学比较近。
-
「长安逸动」继帝豪的又一国产神车!颜值不输思域,拥一流动力,售6万月销过万
-
南儿风尚▲这几款复古百搭又藏肉,时尚优雅元气满满,四月穿搭首选百褶裙
-
岳阳日报客户端|小车撞报废,触目惊心!许广高速上一司机疲劳驾驶追尾大货车
-
支持返乡下乡人员创业创新 小微企业可获200万元贷款 广西农民分
-
-