Golang如何定义error

互联网 20-3-14

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的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: error
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:Golang判断文件是否能写入的方法

相关资讯