err_code.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/pkg/errors"
  5. )
  6. // Response 错误时返回自定义结构
  7. type Response struct {
  8. Code ErrCode `json:"code"` // 错误码
  9. Msg string `json:"msg"` // 错误信息
  10. RequestId string `json:"request_id"` // 请求ID
  11. }
  12. type ErrCode int // 错误码
  13. // 定义 errorCode
  14. const (
  15. // ServerError 1开头为服务级错误码
  16. ServerError ErrCode = 10001
  17. ParamBindError ErrCode = 10002
  18. // IllegalDatasetName 2开头为业务级错误码
  19. // 其中数据集管理为201开头
  20. IllegalDatasetName ErrCode = 20101 // 无效的数据集名称
  21. ParamNameError ErrCode = 20102 // 参数name错误
  22. // IllegalPhoneNum 用户管理模块:202开头
  23. IllegalPhoneNum ErrCode = 20201 // 手机号格式不正确
  24. IllegalVerifyCode ErrCode = 20202 // 无效的验证码
  25. PhoneRepeatedRegistered ErrCode = 20203 // 手机号不可重复注册
  26. PhoneIsNotRegistered ErrCode = 20204 // 该手机号未注册
  27. PhoneRepeatedApproved ErrCode = 20205 // 手机号不可重复审批
  28. PhoneIsNotApproved ErrCode = 20206 // 该手机号未审批
  29. // IllegalModelName 预训练模块:203开头
  30. IllegalModelName ErrCode = 20301 // 非法模型名称
  31. )
  32. // 定义 errorCode 对应的文本信息
  33. var errorMsg = map[ErrCode]string{
  34. ServerError: "服务内部错误",
  35. ParamBindError: "参数信息有误",
  36. IllegalDatasetName: "无效的数据集名称",
  37. ParamNameError: "参数name错误",
  38. IllegalPhoneNum: "手机号格式不正确",
  39. IllegalModelName: "非法模型名称",
  40. }
  41. // Text 根据错误码获取错误信息
  42. func String(code ErrCode) string {
  43. if msg, ok := errorMsg[code]; ok {
  44. return msg
  45. }
  46. return "未知错误码"
  47. }
  48. // Error 实现 error 接口
  49. func (r *Response) Error() string {
  50. return fmt.Sprintf("Code: %d, Msg: %s, RequestId: %s", r.Code, r.Msg, r.RequestId)
  51. }
  52. // NewCustomError 新建自定义 error 实例化
  53. func NewCustomError(code ErrCode, requestId string) error {
  54. return errors.Wrap(&Response{
  55. Code: code,
  56. Msg: String(code),
  57. RequestId: requestId,
  58. }, "custom error")
  59. }