我正在使用Apache Thrift工具,我正在从服务器端向客户端抛出一些例外。
唯一的问题是,当客户端调用返回boolean Thrift的方法时,忽略了Exception并且服务器正在发回布尔值的值:
所以我想知道在调用方法之后是否可以检查是否已抛出异常,因为我的try / catch块没有这样做。
答案 0 :(得分:2)
为了解决我的问题,我使用了一些不太干净的东西,但它有诀窍: 我在Thrift中定义了一个新结构,就像布尔值的包装器一样:
struct thriftBool{1: bool success = false,}
现在我的客户端收到所有异常而不是
if(client.myMethod())
我在做:
if(client.myMethod().success)
编辑:似乎0.9版本的Thrift解决了这个问题。
答案 1 :(得分:0)
您可以使用AOP。只需添加一个异常处理切入点。