热门IT资讯网

Golang如何定义错误error

发表于:2024-11-25 作者:热门IT资讯网编辑
编辑最后更新 2024年11月25日,Golang如何定义错误error?很多人都不太了解,今天小编为了让大家更加了解Golang如何定义error,所以给大家总结了以下内容,一起往下看吧。Golang如何定义error在开发过程中, 标

Golang如何定义错误error?很多人都不太了解,今天小编为了让大家更加了解Golang如何定义error,所以给大家总结了以下内容,一起往下看吧。

Golang如何定义error

在开发过程中, 标准库返回的error内容已经无法满足我们的需要时,发现builtin.go中error是一个interface,

type error interface {    Error() string}

所以只需要创建一个包含Error() string函数的结构体即可。

1、在go path下新建errors包

vim $GOPATH/github.com/mypractise/error/errors.go

package errorstype Error struct {    ErrCode int    ErrMsg  string}func NewError(code int, msg string) *Error {    return &Error{ErrCode: code, ErrMsg: msg}}func (err *Error) Error() string {    return err.ErrMsg}

2、开始调用errors包

vim ./test.go

package mainimport (    "encoding/json"    "errors"    "fmt"    myerr "github.com/mypractise/errors")func myErr() error {    err := myerr.NewError(2, "err test")    return err}func staErr() error {    m := make(map[string]string)    err := json.Unmarshal([]byte(""), m)    if err != nil {        return err    }    return errors.New("aaaaa")}func main() {    err1 := staErr()    fmt.Println("------sta err:", err1.Error())    err2 := myErr()    fmt.Println("------my err:", err2.Error(), err2.(*myerr.Error).ErrCode)}

3、运行测试

go run ./test.go

关于Golang如何定义错误error就分享到这里了,当然并不止以上和大家分析的办法,不过小编可以保证其准确性是绝对没问题的。希望以上内容可以对大家有一定的参考价值,可以学以致用。如果喜欢本篇文章,不妨把它分享出去让更多的人看到。

0