基本用法
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 ""
}