简介
目前没有go官方的错误处理规范,通常每个人会有自己的实现,本次梳理几种可行的错误处理实现
方案一: 利用嵌套错误
什么是嵌套错误
Go1.13在errors和fmt标准库包中新增了功能以简化处理包含其他错误的错误。其中最重要的是一个约定: 包含一个错误e2的错误e1可以实现Unwarp方法来返回所包含的底层错误,简单来说,如果e1包装了e2,你可以Unwrap e1来得到e2。
Unwrap 得到的底层错误本身可能也具有Unwrap方法,我们将这种通过重复Unwrap得到的错误序列称为错误链
生成嵌套错误
fmt.Errof
是生成嵌套错误最快捷的方法12var ErrAuth = errors.New("auth error")var ErrPassword = fmt.Errorf("%w: incorrect password", ErrAuth) //ErrPassword是嵌套错误
判断是否包含某嵌套错误
|
|
常用函数
|
|
示例
|
|
相关资料
代码示例: error_handle/use_runtime/main.go