special error

This commit is contained in:
withchao
2023-03-14 14:31:05 +08:00
parent 8dd2d3054f
commit c3b109ad4a
2 changed files with 63 additions and 7 deletions
+33
View File
@@ -0,0 +1,33 @@
package specialerror
import "OpenIM/pkg/errs"
var handlers []func(err error) errs.CodeError
func AddErrHandler(h func(err error) errs.CodeError) {
if h == nil {
panic("nil handler")
}
handlers = append(handlers, h)
}
func AddReplace(target error, codeErr errs.CodeError) {
AddErrHandler(func(err error) errs.CodeError {
if err == target {
return codeErr
}
return nil
})
}
func ErrCode(err error) errs.CodeError {
if codeErr, ok := err.(errs.CodeError); ok {
return codeErr
}
for i := 0; i < len(handlers); i++ {
if codeErr := handlers[i](err); codeErr != nil {
return codeErr
}
}
return nil
}