package errorx import "fmt" // CodeError 业务错误 type CodeError struct { Code int `json:"code"` Msg string `json:"msg"` } func (e *CodeError) Error() string { return fmt.Sprintf("code: %d, msg: %s", e.Code, e.Msg) } // NewCodeError 创建业务错误 func NewCodeError(code int, msg string) *CodeError { return &CodeError{Code: code, Msg: msg} } // NewCodeErrorf 创建业务错误(格式化) func NewCodeErrorf(code int, format string, args ...interface{}) *CodeError { return &CodeError{Code: code, Msg: fmt.Sprintf(format, args...)} } // 预定义错误码 const ( CodeSuccess = 0 CodeBadRequest = 400 CodeUnauthorized = 401 CodeForbidden = 403 CodeNotFound = 404 CodeServerError = 500 CodeUserExists = 1001 CodeUserNotFound = 1002 CodeWrongPassword = 1003 CodeInvalidToken = 1004 ) // 预定义错误 var ( ErrBadRequest = NewCodeError(CodeBadRequest, "请求参数错误") ErrUnauthorized = NewCodeError(CodeUnauthorized, "未授权") ErrForbidden = NewCodeError(CodeForbidden, "禁止访问") ErrNotFound = NewCodeError(CodeNotFound, "资源不存在") ErrServerError = NewCodeError(CodeServerError, "服务器内部错误") ErrUserExists = NewCodeError(CodeUserExists, "用户已存在") ErrUserNotFound = NewCodeError(CodeUserNotFound, "用户不存在") ErrWrongPassword = NewCodeError(CodeWrongPassword, "密码错误") ErrInvalidToken = NewCodeError(CodeInvalidToken, "无效的Token") )