1. 介绍
文档地址:https://pkg.go.dev/errors
Go 标准库 errors 用于操作error。
如果一个error e包含以下任一方法,则可以包裹另一个error。
Unwrap() error
Unwrap() []error
自定义error结构体示例:
type MyError struct {
When time.Time
What string
}
func (e MyError) Error() string {
return fmt.Sprintf("%v: %v", e.When, e.What)
}
err := MyError{
time.Date(1989, 3, 15, 22, 30, 0, 0, time.UTC),
"the file system has gone away",
}
fmt.Println(err)
2. 函数
// New 创建error
func New(text string) error
// As err是否和target类型匹配,如果是则设置target的内容
func As(err error, target any) bool
// Is err是否和target类型匹配
func Is(err, target error) bool
// Join 将多个error包裹起来
func Join(errs ...error) error
// Unwrap 调用err.Unwrap打开包裹
func Unwrap(err error) error