Go1 如何实用地错误处理(Error Handling and Go 1)
4 月 GopherChina 大会上 Marcel 首次公开了Go2 的错误处理改进的初步想法, 最近官方发布了 Go2 草案, 要改善错误处理, 给了多种社区和官方的设计方案, GoCN 分享的每日新闻中讨论 Go 语言的错误处理文章也多了起来:
1. handling-more-than-just-errors-in-go
2. error-handling-go
3. exploring-error-handling ...
我也来分享下我对 Go 错误处理的理解和实践经验, 实用为主, 目标是看到错误日志能快速定位问题, 减轻错误处理的负担, 使用效果不错. 代码是去年写的, 博客是 7 月写的...
文章: https://hanjm.github.io/2018/07/08/Go%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E5%9C%B0%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86(Error%20handling%20and%20Go%201)/
包: https://github.com/hanjm/errors
----------------------- 以下是精选回复-----------------------
答:lz 你们在生产上用 nats 了?
答:感谢分享!想跟楼主交流一个事情,我看到 Go 的 code style 建议里说,不要在错误返回的 else 块里做“正常情况下的功能代码”
e.g.
```
if err != nil {
xxx
} else {
// 如果没有报错的情况下要执行的代码
}
```
而是应该把 else 中的代码给抽出来,直接放在外边。
为什么要这么做呢?道理是什么呢?
0条评论