简单的事做好之代码的错误处理

无论什么语言,处理错误都不是一件难的事,但是想把每个错误处理写好符合规范并不是容易的事。我只是对我在编程过程中对处理错误的一些思考和教训,肯定不是全对的,如果你觉得我是错的或者你有更好的方法,请不吝指教。

一.请不要忽略任何错误

在任何时候我们都不应该忽略错误,大部分的错误都需要捕捉处理,除非一些不重要能容忍的错误可以打印出来,但一定不能忽略,不然会给维护带来非常大的困难

二.错误需要一个字典

无论你是使用错误码还是异常捕捉错误,都需要将错误进行分类,比如50x是属于服务端错误,40x属于客户端错误

三.不要将大量的代码写在一个try catch里面

我们希望一个try catch只完成一件事情

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

可以将循环体放在try语句内,然后在外面做catch

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

这样可以使调用者更简单,如果你写过go,就知道if err != nil的尴尬

六.异常是用来处理不期望发生的事,而错误码是处理可能发生的事

所以不要用处理错误逻辑的方式来处理业务逻辑,类似if(参数不合法){}就可以做的很好了

七.对一个地方不停的报错,不要一直打印

这样日志文件太大,也会淹没其它的错误,打印错误以及发生的次数即可

八.区分错误的等级

笼统的错误只会让人手足无措,比如fatal表示重大错误,error表示资源或需求得不到满足,waring并不一定是个错误但需要引起注意,info表示不是错误只是一个信息,而debug是在开发阶段打印的信息他不应该出现在生产环境

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

如题,没有什么好说的,我们应该展示给别人接口对于错误的处理

十.处理错误时,总是要清理已分配的资源

例如关闭流,finally和defer都可以很好的处理

十一.错误日志的输出最好使用错误码,而不是错误信息

这样可以让日志分析软件很容易的做自动化监控,而不是从错误信息中做语义分析

发布了169 篇原创文章 · 获赞 224 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/sureSand/article/details/102652991