Skip to main content
Version: php

基本用法

type error interface {
Error() string
}

自定义错误

package errors

import "fmt"

// myErr 声明为小写开头,这样可以避免在在包外被直接声明
type myErr struct {
code int
msg string
}

func (e myErr) Error() string {
return fmt.Sprintf("code:%d,msg:%v", e.code, e.msg)
}

func New(code int, msg string) error {
return myErr{
code: code,
msg: msg,
}
}

func GetCode(err error) int {
if e, ok := err.(myErr); ok {
return e.code
}
return -1
}

func GetMsg(err error) string {
if e, ok := err.(myErr); ok {
return e.msg
}
return ""
}