feat: super 包支持注册第三方错误,将第三方错误转换为特定错误代码和信息
This commit is contained in:
parent
6238883dc9
commit
2cbffbf967
|
@ -5,6 +5,7 @@ import (
|
|||
)
|
||||
|
||||
var errorMapper = make(map[error]int)
|
||||
var errorMapperRef = make(map[error]error)
|
||||
|
||||
// RegError 通过错误码注册错误,返回错误的引用
|
||||
func RegError(code int, message string) error {
|
||||
|
@ -16,7 +17,21 @@ func RegError(code int, message string) error {
|
|||
return err
|
||||
}
|
||||
|
||||
// GetErrorCode 通过错误引用获取错误码,如果错误不存在则返回 0
|
||||
func GetErrorCode(err error) int {
|
||||
return errorMapper[err]
|
||||
// RegErrorRef 通过错误码注册错误,返回错误的引用
|
||||
func RegErrorRef(code int, message string, ref error) error {
|
||||
if code == 0 {
|
||||
panic("error code can not be 0")
|
||||
}
|
||||
err := errors.New(message)
|
||||
errorMapper[err] = code
|
||||
errorMapperRef[ref] = err
|
||||
return ref
|
||||
}
|
||||
|
||||
// GetErrorCode 通过错误引用获取错误码,如果错误不存在则返回 0
|
||||
func GetErrorCode(err error) (int, error) {
|
||||
if ref, exist := errorMapperRef[err]; exist {
|
||||
err = ref
|
||||
}
|
||||
return errorMapper[err], err
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue