学习笔记——代码中错误处理的最佳实践

最近在极客时间上学习左耳朵耗子大佬的左耳听风栏目,收益颇多,决定对从课程中学习到的东西进行总结记录以加深印象。

今天学习的课程主要是对代码中错误处理的方式从各个语言的实现角度做了介绍并提出了一些自己对于错误处理的最佳实践,这里对🐭大佬提出的一些最佳实践进行自己的理解和总结(说到错误处理就想到自从我入职之后从Java转到Golang开发,确实明显感觉到了两种语言对于异常错误处理的不一致,还经常还无法习惯golang中的error处理形式)

1.统一分类的错误字典

这个在进行http接口开发的时候体会的比较深刻,因为http中的返回错误码的形式就将错误进行了分类,2XX开头的表示正常的请求,3XX表示重定向,4XX表示客户端请求有问题,5XX表示服务端的问题。所以我后来做一些第三方调用接口的开发时偶尔会将错误进行分类用错误码+msg的形式返回错误到调用方

2.同类错误的定义最好可以扩展

类似于Java中的Exception和Golang中的error可以用多态的方式做到代码复用

3.定义错误的严重程度

感觉这个一般用在日志记录的时候,根据问题严重性打印error,info,warning等级别的信息

4.错误日志输出最好用错误码而不是错误信息

确实在做开发时某些地方打印错误日志直接就把error或者Exception信息打印出来,导致在排查问题时没有关键词进行搜索很难找到出错的那行日志在哪。所以打印错误信息的时候有必要增加一个标识符表示这个错误日志发生的地点,我现在一般都是用唯一性的一句description,这样看来用错误码好像是更高级点的方式

5.忽略错误要有日志

方便问题排查,不用多说

6.对于同一个地方不停报错,最好不要都打到日志里

to do

7.不要用错误处理逻辑处理业务逻辑

就是要记住一个原则异常捕捉是用来处理不期望发生的事,比如空指针异常等,错误码就可以用来处理可能会发生的事,比如第三方接口调用时可能出现的参数错误,鉴权信息有误等

8.对同类错误的处理用同一种模式

主要是代码规范

9.尽可能在错误发生的地方处理错误

todo

10.向上尽可能返回原始的错误

这个就踩过坑,在某次开发时我捕获了一个方法的异常然后在异常处理中没有将这个异常打印出来,然后还返回了一个很模糊的报错信息给上层,导致最后排障的时候特别坑。。

11.处理错误时要清理以分配的资源

12.不推荐在循环体内处理错误

一般把循环体整个放在一个try-catch内

13.不要把大量代码都放在一个try语句块内

14.为错误定义提供清楚的文档以及每种错误的代码示例

todo

15.对于异步的方式推荐用promise模式处理错误

在真实的开发中我还没用过promise模式,觉得看着挺刁的以后找机会实践一下

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,440评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,814评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,427评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,710评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,625评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,511评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,162评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,311评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,262评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,278评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,989评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,583评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,664评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,904评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,274评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,856评论 2 339