error
Contents
Golang 错误处理和日志打印的 5 点建议 - https://blog.hackerpie.com/posts/programming-paradigm/golang-error-logs/
Working with Errors in Go 1.13 - The Go Programming Language - https://go.dev/blog/go1.13-errors
3种方式!Go Error处理佳实践 - 文章详情 - https://z.itpub.net/article/detail/7F1B2EB3C5F2E6F989C2E0B9B9C183E8
Go错误处理:错误链使用指南 | Tony Bai - https://tonybai.com/2023/05/14/a-guide-of-using-go-error-chain/
-
是什么?
- what
- vs other
- sential error
-
什么是好的错误处理,以及如何
-
基础概念
- 是什么?
- vs other? feature
-
最佳实践
- 要求
- 如何做
go 中的error
|
|
a string, 返回最基本的信息;
error type:
- 作为返回值
- 作为 try….catch 一部分, 编译器参与
vs try…catch: pros:
- 无法批量处理:打断业务流程
- 原始错误只有一种类型, 不好分类处理
- 无法打印出堆栈
- 开发者,繁琐
cons:
- 迫使开发者处理每一个错误,避免统一处理产生的bug
最佳实践
什么是好的错误处理:
core:
- 清晰的打印出错误链路
- 拿到根本的原因,根据根本原因不同分别进行处理
other:
- 减少开发记录成本
- 减少对外部错误的依赖
- 区分系统错误和一般业务错误
如何做:
- 使用 fmt.Errorf(“xxx%w”,err),向上抛出错误,并注入本function 的信息: 逻辑堆栈
- 只在最顶层做打印
- 使用 error.is error as获取 原始的信息
|
|
其他:
- 减少对其他包错误的依赖, 转换为自定义的错误;
- 缺乏呢