欢迎光临
我们一直在努力

GoFrame错误处理常用方法是什么

这篇“GoFrame错误处理常用方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“GoFrame错误处理常用方法是什么”文章吧。

错误创建

New/Newf

用于创建一个自定义错误信息的error对象,并包含堆栈信息。

New(text string) error
Newf(format string, args ...interface{}) error

Wrap/Wrapf

用于包裹其他错误error对象,构造成多级的错误信息,包含堆栈信息。

func Wrap(err error, text string) error
func Wrapf(err error, format string, args ...interface{}) error

NewSkip/NewSkipf

用于创建一个自定义错误信息的error对象,并且忽略部分堆栈信息(按照当前调用方法位置往上忽略)。高级功能,一般开发者很少用得到。

func NewSkip(skip int, text string) error 
func NewSkipf(skip int, format string, args ...interface{}) error

错误码使用

错误码相关方法概览

func NewCode(code int, text string) error
func NewCodef(code int, format string, args ...interface{}) error
func NewCodeSkip(code, skip int, text string) error
func NewCodeSkipf(code, skip int, format string, args ...interface{}) error
func WrapCode(code int, err error, text string) error
func WrapCodef(code int, err error, format string, args ...interface{}) error

NewCode/NewCodef

功能同New/Newf方法,用于创建一个自定义错误信息的error对象,并包含堆栈信息,并增加错误码对象的输入。

NewCode(code gcode.Code, text ...string) error
NewCodef(code gcode.Code, format string, args ...interface{}) error
示例代码
func ExampleNewCode() {
    err := gerror.NewCode(gcode.New(101, "", nil), "My Error")
    fmt.Println(err.Error())    // My Error
    fmt.Println(gerror.Code(err))    //101
}
func ExampleNewCodef() {
    err := gerror.NewCodef(gcode.New(101, "", nil), "It's %s", "My Error")
    fmt.Println(err.Error()) //It's My Error
    fmt.Println(gerror.Code(err).Code()) //101
}

WrapCode/WrapCodef

功能同Wrap/Wrapf方法,用于包裹其他错误error对象,构造成多级的错误信息,包含堆栈信息,并增加错误码参数的输入。

WrapCode(code gcode.Code, err error, text ...string) error
WrapCodef(code gcode.Code, err error, format string, args ...interface{}) error
示例代码
func ExampleWrapCode() {
    err1 := errors.New("permission denied")
    err2 := gerror.WrapCode(gcode.New(403, "", nil), err1, "Custom Error")
    fmt.Println(err2.Error())     // Custom Error: permission denied
    fmt.Println(gerror.Code(err2).Code())    // 403
}
func ExampleWrapCodef() {
    err1 := errors.New("permission denied")
    err2 := gerror.WrapCodef(gcode.New(403, "", nil), err1, "It's %s", "Custom Error")
    fmt.Println(err2.Error())    // It's Custom Error: permission denied
    fmt.Println(gerror.Code(err2).Code())    // 403
}

NewCodeSkip/NewCodeSkipf

功能同NewSkip/NewSkipf,用于创建一个自定义错误信息的error对象,并且忽略部分堆栈信息(按照当前调用方法位置往上忽略),并增加错误参数输入。

func NewCodeSkip(code, skip int, text string) error
func NewCodeSkipf(code, skip int, format string, args ...interface{}) error

获取error中的错误码接口

func Code(err error) gcode.Code

当给定的error参数不带有错误码信息时,该方法返回预定义的错误码gcode.CodeNil

以上就是关于“GoFrame错误处理常用方法是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注云搜网行业资讯频道。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。