微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Python中使用gRPC处理自定义异常?

如何解决如何在Python中使用gRPC处理自定义异常?

我需要实现自定义异常,以使用Python处理gRPC请求错误。对于HTTP请求,它很简单-请求库在出现错误代码等时可以很好地捕获它。我正在寻找类似的方式让gRPC执行类似的操作:

try:
    # send gRPC request
except SomeGRPCException as e:
    # custom handle

有没有办法像Python那样处理gRPC错误?还是使用gRPC不能像示例中那样工作?

解决方法

对于简单的RPC错误处理,可以使用try-catch:

try:
    response = stub.SayHello(...)
except grpc.RpcError as rpc_error:
    if rpc_error.code() == grpc.StatusCode.CANCELLED:
        pass
    elif rpc_error.code() == grpc.StatusCode.UNAVAILABLE:
        pass
    else:
        print(f"Received unknown RPC error: code={rpc_error.code()} message={rpc_error.details()}")

对于复杂的RPC错误处理,您可能需要利用尾随的元数据: https://github.com/grpc/grpc/tree/master/examples/python/errors

在大多数情况下,try-catch应该足够了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。