fix: 修复 super.RegError 和 RegErrorRef 空指针问题

This commit is contained in:
kercylan98 2023-09-09 17:22:21 +08:00
parent 5103103fb5
commit 82973dd11a
1 changed files with 7 additions and 6 deletions

View File

@ -6,14 +6,15 @@ import (
) )
var errorManagerInstance *errorManager var errorManagerInstance *errorManager
var errorManagerMutex sync.Mutex
// RegError 通过错误码注册错误,返回错误的引用 // RegError 通过错误码注册错误,返回错误的引用
func RegError(code int, message string) error { func RegError(code int, message string) error {
if code == 0 { if code == 0 {
return errors.New("error code can not be 0") return errors.New("error code can not be 0")
} }
errorManagerInstance.mutex.Lock() errorManagerMutex.Lock()
defer errorManagerInstance.mutex.Unlock() defer errorManagerMutex.Unlock()
if errorManagerInstance == nil { if errorManagerInstance == nil {
errorManagerInstance = new(errorManager).init() errorManagerInstance = new(errorManager).init()
} }
@ -28,8 +29,8 @@ func RegErrorRef(code int, message string, ref error) error {
if code == 0 { if code == 0 {
return errors.New("error code can not be 0") return errors.New("error code can not be 0")
} }
errorManagerInstance.mutex.Lock() errorManagerMutex.Lock()
defer errorManagerInstance.mutex.Unlock() defer errorManagerMutex.Unlock()
if errorManagerInstance == nil { if errorManagerInstance == nil {
errorManagerInstance = new(errorManager).init() errorManagerInstance = new(errorManager).init()
} }
@ -45,8 +46,8 @@ func GetError(err error) (int, error) {
if unw == nil { if unw == nil {
unw = err unw = err
} }
errorManagerInstance.mutex.Lock() errorManagerMutex.Lock()
defer errorManagerInstance.mutex.Unlock() defer errorManagerMutex.Unlock()
if ref, exist := errorManagerInstance.errorMapperRef[unw]; exist { if ref, exist := errorManagerInstance.errorMapperRef[unw]; exist {
//err = fmt.Errorf("%w : %s", ref, err.Error()) //err = fmt.Errorf("%w : %s", ref, err.Error())
err = ref err = ref