Golang错误处理

Golang 中创建错误有两种方式:
第一种: errors.New() 函数,其返回值类型为 *errors.errorString

第二种: fmt.Errorf() 函数
当使用 fmt.Errorf() 来创建错误时,核心有以下两点:

错误描述中不包含 %w 时,p.wrappedErrnil,所以底层也是调用 errors.New() 创建错误。因此错误类型就是 *errors.errorString

错误描述中包含 %w 时,p.wrappedErr 不为 nil,所以底层实例化 wrapError 结构体指针。 因此错误类型是 *fmt.wrapError,可以理解为包裹错误类型。

Reference

posted @ 2023-02-21 11:04  0x7F  阅读(46)  评论(0编辑  收藏  举报