go-zero lottery项目——封装错误码具体操作流程

go-zero lottery项目——封装错误码具体操作流程

Model层

对于model层的错误应该进行封装。
  • 在common/xerr/errCode.go声明错误码

    image-20240201111840197

  • 在errMsg.go声明对应的错误信息

    image-20240201112103544

  • model层对应的错误,进行封装,对应的参数信息也需要加上

    image-20240201113015175

    errors.Wrapf(xerr.NewErrCode(xerr.DB_FIND_USERID_BYLOTTERYID_ERROR), "FindOne, lotteryId:%v, error: %v", lotteryId, err)
    
  • 第一个参数, ErrUserAlreadyRegisterError 定义在上方 就是使用xerr.NewErrMsg("该用户已被注册") , 返回给前端友好的提示,要记住这里用的是我们xerr包下的方法

    第二个参数,就是记录在服务器日志,可以写详细一点都没关系只会记录在服务器不会被返回给前端

RPC层

  • 当RPC层调用Model层产生错误的时候不需要封装错误,而是直接把错误向上传递即可

    image-20240201112905709

  • 如果是RPC层业务逻辑上有错误,需要在RPC层封装统一错误码,操作和Model层类似

API层

  • 当RPC层封装完错误后,API层只需要向客户端返回相应错误即可。
posted @ 2024-03-10 01:27  lovevivi121  阅读(29)  评论(0)    收藏  举报  来源