首页 >后端开发 >Golang >Golang如何定义error

Golang如何定义error

angryTom
angryTom原创
2020-03-14 16:36:473350浏览

Golang如何定义error

Golang如何定义error

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

相关推荐:golang教程

type error interface {
    Error() string
}

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

1、在go path下新建errors包

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

package errors

type 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 main

import (
    "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

PHP中文网,大量编程教程和网站建设教程,欢迎学习。   

以上是Golang如何定义error的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn