package main
import (
"fmt"
)
type UpdateNotingErr struct {
error
Code int
}
func main(){
e:=returnErr()
v:=e.(*UpdateNotingErr)
fmt.Println(v.Code)
}
func returnErr()error{
return &UpdateNotingErr{Code:12345}
}
一开始想做的事情是,在gorm中,区别出duplicate key 的错误,但是从return的error中不知道怎么区分,后面查阅资料,发现可以从err code中判断不同的错误,但是err要强转成MysqlErr,觉得很好奇,就自己写了个UpdateNotingErr错误,然后继承error,最后可以强转,拿到code。
这一种错误管理后面可以运用到项目中去。