我正在使用Apache Thrift工具,并且从服务器端到客户端抛出了一些异常。
唯一的问题是,当客户端调用一个返回布尔型Thrift的方法时,它会忽略Exception,而服务器会发回布尔型的值:
Here is the issue opened
所以我想知道在调用方法后是否有可能检查异常,因为我的try / catch块没有这样做。
最佳答案
为了解决我的问题,我使用了一些不太干净的东西,但是可以解决问题:
我在Thrift中定义了一个新结构,就像布尔值的包装器一样:
struct thriftBool{1: bool success = false,}
现在我的客户收到所有异常,而不是
if(client.myMethod())
我正在做:
if(client.myMethod().success)
编辑:看来0.9版的Thrift可以解决此问题。