golang自定义error


系统自身的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,"无此权限"))
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM