如何用PYTHON中的GRPC处理自定义异常?

2022-04-03 00:00:00 python rpc grpc exception

问题描述

我需要实现自定义异常,以便使用Python处理GRPC请求错误。对于HTTP请求,它很简单-当有错误代码等时,请求库可以很好地捕获它。

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应该就足够了。

相关文章