feat: 支持使用 super.RegError 函数为错误注册全局错误码,使用 super.GetErrorCode 根据错误获取全局错误码

This commit is contained in:
kercylan98 2023-07-19 11:07:06 +08:00
parent 31ad0ee4fb
commit 1dcbd0a220
1 changed files with 22 additions and 0 deletions

22
utils/super/error.go Normal file
View File

@ -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]
}