package xerr import "fmt" // ICodeError 定义业务错误接口,用于跨包识别 type ICodeError interface { GetErrCode() int GetErrMsg() string } type CodeError struct { errCode int errMsg string } // 错误返回的 Error() 方法 func (e *CodeError) Error() string { return fmt.Sprintf("ErrCode:%d,ErrMsg:%s", e.errCode, e.errMsg) } func (e *CodeError) GetErrCode() int { return e.errCode } func (e *CodeError) GetErrMsg() string { return e.errMsg } func NewErrCodeMsg(errCode int, errMsg string) *CodeError { return &CodeError{errCode: errCode, errMsg: errMsg} } func NewErrCode(errCode int) *CodeError { return &CodeError{errCode: errCode, errMsg: MapErrMsg(errCode)} } func NewErrMsg(errMsg string) *CodeError { return &CodeError{errCode: ServerError, errMsg: errMsg} }