go1.13为 errors 和 fmt 标准库包引入了新特性,以简化处理包含其他错误的错误。其中最重要的是:包含另一个错误的error 可以实现返回底层错误的Unwrap 方法。如果 e1.Unwrap()返回 e2,那么我们说 1€1句尖 e2,您可以展开 e1 以获得e2。

按照此约定,我们可以为上面的 QueryError 类型指定一个 Unwrap 方法,该方法返回其包含的错误:

image-20230830083729452

go1.13 errors 包包含两个用于检查错误的新函数:Is 和 AS。

image-20230830083752557

image-20230830083819545

%w 的底层数据结构:

image-20230830083847476

最后修改:2023 年 08 月 30 日
如果觉得我的文章对你有用,请随意赞赏