当前位置: 移动技术网 > IT编程>脚本编程>Go语言 > golang自定义error

golang自定义error

2019年12月31日  | 移动技术网IT编程  | 我要评论

系统自身的error处理一般是 errors.new()或fmt.errorf()等,对一些需要复杂显示的,不太友好,我们可以扩展下error。

error在标准库中被定义为一个接口类型,该接口只有一个error()方法

type error interface {
  error() string
}

那么,自定义error只要拥有error()方法,就实现了error接口,这里我们用结构体来扩展

package errors

import (
    "encoding/json"
)

type err struct {
    code int
    msg   string
}

func (e *err) error() string {
    err, _ := json.marshal(e)
    return string(err)
}

func new(code int, msg string) *err {
    return &err{
        code: code,
        msg:   msg,
    }
}

调用

func main(){
    fmt.println(errors.new(401,"无此权限"))
}

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网