diff --git a/utils/super/error.go b/utils/super/error.go new file mode 100644 index 0000000..e89d276 --- /dev/null +++ b/utils/super/error.go @@ -0,0 +1,22 @@ +package super + +import ( + "errors" +) + +var errorMapper = make(map[error]int) + +// RegError 通过错误码注册错误,返回错误的引用 +func RegError(code int, message string) error { + if code == 0 { + panic("error code can not be 0") + } + err := errors.New(message) + errorMapper[err] = code + return err +} + +// GetErrorCode 通过错误引用获取错误码,如果错误不存在则返回 0 +func GetErrorCode(err error) int { + return errorMapper[err] +}