百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
G

go-multierror

> 编程语言
开源

一个用于将错误列表表示为单个错误的Go(golang)包。

2.6K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

一个用于将错误列表表示为单个错误的Go(golang)包。

go-multierror

注意:自 Go 1.20 起,标准库提供了 errors.Join,其功能与组合多个错误类似。对于新项目,我们建议使用标准库中的 errors.Join。 本包提供了额外功能,如自定义格式化、用于并发错误收集的 Group 模式,以及实用函数(Append、Flatten、Prefix)。

迁移到 errors.Join

基本错误聚合:

go
// Before (go-multierror)
var result error
result = multierror.Append(result, err1)
result = multierror.Append(result, err2)
return result

// After (stdlib)
var errs []error
if err1 != nil {
    errs = append(errs, err1)
}
if err2 != nil {
    errs = append(errs, err2)
}
if len(errs) > 0 {
    return errors.Join(errs...)
}
return nil

自定义格式化:

go
// go-multierror allows custom formatting
// With stdlib, wrap the joined error with a custom type if needed
type FormattedError struct {
    errs []error
}

func (e *FormattedError) Error() string {
    // Your custom format here
    return fmt.Sprintf("multiple errors: %v", e.errs)
}

func (e *FormattedError) Unwrap() []error {
    return e.errs
}

并发错误收集(Group):

…

go-multierror 是一个用于 Go 的包,它提供了一种将 error 值列表表示为单个 error 的机制。

这允许 Go 中的函数返回一个实际上可能是错误列表的 error。如果调用者知道这一点,他们可以解包该列表并访问其中的错误。如果调用者不知道,该错误会格式化为美观且易于阅读的格式。

go-multierror 与 Go 标准库 errors 包兼容,支持用于错误内省的 As、Is 和 Unwrap 函数。请注意,Unwrap 通过链式调用一次返回一个错误,这与 errors.Join 不同,后者实现了较新的 Unwrap() []error 签名(Go 1.20+)。

安装与文档

使用 go get git 进行安装

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Go

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言