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

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

更多相关文章

  1. golang如何调用函数?
  2. 详解Golang中函数作为值与类型
  3. go语言中普通函数与方法的区别是什么?
  4. 详解Go 中方法与函数的区别
  5. 关于golang封装一个bash函数,用于执行bash命令
  6. 总结Golang实现PHP常用函数
  7. J2ME Mobile 3D入门教程系列文章之一
  8. Java中构造、生成XML简明教程
  9. PHP扩展之XML操作(三)——XML解析器使用及相关函数

随机推荐

  1. android设置横屏和竖屏的方法
  2. Android 文件的保存与读取之SDCard(SD卡)存
  3. android中移植 c/c++程序
  4. 解决 Android 在Eclipse 开发中 Class No
  5. android gravity and LinerarLayout for
  6. android vim编辑器的移植
  7. Android 使用Vitamio打造自己的万能播放
  8. Android SDK r20.x更新时,没有Android API
  9. android webview拦截超链接
  10. Android历史