通八洲科技

如何使用Golang内置errors包创建错误_简单生成标准error对象

日期:2025-12-25 00:00 / 作者:P粉602998670
Go 1.13+ 推荐用 errors.New 创建轻量、标准的不可变字符串错误,适用于固定消息场景;需定义包级变量(如 var ErrNotFound = errors.New("user not found"))并用 errors.Is 比较,避免直接 ==。

Go 1.13+ 推荐用 errors.New 创建基础错误,它返回一个实现了 error 接口的不可变字符串错误对象,轻量、标准、无需额外依赖。

直接创建简单错误

适用于固定消息、无需携带上下文或堆栈的场景,比如参数校验失败:

配合 if err != nil 使用

这是 Go 最常见的错误处理模式,errors.New 生成的 error 可直接参与判断:

var ErrNotFound = errors.New("user not found")

func FindUser(id int) (User, error) {
if id <= 0 { return User{}, ErrNotFound }
// ...
}

与 fmt.Errorf 区分使用

errors.New 适合静态、无格式化需求的错误;需要插值或包装时,优先选 fmt.Errorf