golang err错误码的细分

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。

 

这一种错误管理后面可以运用到项目中去。

你可能感兴趣的:(go)