2026-01-11 如何使用Golangerrors.Unwrap提取底层错误 如何使用Golangerrors.Unwrap提取底层错误 go if err != nil { return fmt.Errorf("failed to read config: %w", err) }这里的 %w 动词表示将 err 包装进新错误中,形成一种链式结构。这种设计极大提升了调试效率——不仅能知道“哪里出错”,还能知道“为什么会出错”。但随之而来的问题是:如何从层层包裹的错误中提取出最初的根源?这正是 errors.Unwrap 的用武之地。Unwrap 的基本用法errors.Unwrap(err error) 函数接收一个 error 类型参数,若该错误是由 fmt.Errorf 使用 %w 包装而成,则返回其内部封装的下一层错误;否则返回 nil。举个例子:go package mainimport ( "errors" "fmt" )func main() { err1 := fmt.Errorf("original error") err2 := fmt.Errorf("middle layer: %w", err1) err3 := fmt.Errorf("top ... 2026年01月11日 3 阅读 0 评论