用户服务中的“创建用户”处理异常的方式

来源:23-12 新建用户接口

0沉默使者0

2023-04-05

@logger.catch
def CreateUser(self, request: user_pb2.CreateUserInfo, context):
    # 新建用户, web开发 - 表单验证 没有必要做 web层做就好了 srv服务层尽可能通用一点
    try:
        User.get(User.mobile == request.mobile)
        context.set_code(grpc.StatusCode.ALREADY_EXISTS)
        context.set_details("用户已存在")
        return user_pb2.UserInfoResponse()
    except DoesNotExist as e:
        pass

    user = User()
    user.nick_name = request.nickName
    user.mobile = request.mobile
    user.password = pbkdf2_sha256.hash(request.passWord)
    user.save()
    return self.convert_user_to_rsp(user)

老师您好,我想问的是,当用户已存在然后创建用户时,使用“context.set_code(grpc.StatusCode.ALREADY_EXISTS)
context.set_details(“用户已存在”)”这种方式虽然能返回错误码和细节,但是并不能处理异常吧?请问这种时候是不是有更好的处理方式?

写回答

1回答

bobby

2023-04-07

context.set_details(“用户已存在”)”这种方式虽然能返回错误码和细节,但是并不能处理异常吧? 这句话是什么意思,我不太明白

0
2
bobby
回复
0沉默使者0
这里服务端设置了错误码。python调用的话会抛出异常,要使用try进行异常捕获才行
2023-04-09
共2条回复

Go+Python打造电商系统 自研微服务框架 抓紧高薪机遇

快速转型Go工程师,成为具备双语言后端能力的开发者

508 学习 · 530 问题

查看课程