Errors
Overview
errors包实现了处理错误函数的实现 New函数用于创建带文本消息上下文的错误 Unwrap,Is,As函数工作于封装了其他错误的errors,一个错误封装另一个错误,如果它含有下面的方法Unwrap() error
如果e.Unwrap返回一个non-nil error w,则表示e封装了错误w Unwrap解包封装的错误,如果参数含有Unwrap方法,将会调用它,否则会返回nil 一个简单的方式创建封装的错误是调用 fmt.Errorf ,对错误参数应用%w动词return err
Is持续的解包第一个参数直到找到一个错误匹配第二个参数,它判断是否找到匹配,它应该比直接持续简单相等判断更优先使用:
优先于
因为err封装了os.ErrExist这种比较将会成功
As持续的解包第一个参数直到找到一个错误能够被赋值给第二个参数(必须是指针),如果成功,则进行赋值并返回true,否则返回false 形式如下:优先于
因为这种形式将会成功如果错误封装了*os.PathError函数(Functions)
func As(err error, target interface{}) bool
Example
func Is(err, target error) bool
Example
func New(text string) error
New函数返回一个有给定文本格式化的错误,每次调用New函数的错误都是有区别的,尽管它们有相同的文本Example
func Unwrap(err error) error
解包错误
Next Post