数据库select返回错误处理问题

来源:1-6 用户列表接口

Enysen

2022-06-19 10:39:54

func (s *UserServer) GetUserByMobile(ctx context.Context, req *proto.MobileRequest) (*proto.UserInfoResponse, error){

// 通过手机号码查询用户

var user model.User

result := global.DB.Where(&model.User{Mobile:req.Mobile}).First(&user)

if result.RowsAffected == 0 {

return nil, status.Errorf(codes.NotFound, "用户不存在")

}

if result.Error != nil {

return nil, result.Error

}


userInfoRsp := ModelToRsponse(user)

return &userInfoRsp, nil

}

问题描述:

bobby老师,在你代码中经常会这样处理select返回值,先判断RowsAffected 是不是为0,表示数据库找不到,再去判断result.Error,如果是其他原因导致的错误,RowsAffected 是不是也为0,但实际上就走不到result.Error了,这个判断的先后顺序是否有影响?


写回答

1回答

bobby

2022-06-20

这里确实来讲,应该先判断Error的情况,再去判断RowsAffected 会更加严谨一些

0

0 学习 · 1399 问题

查看课程