【发布时间】:2012-03-20 10:29:50
【问题描述】:
我正在使用 Apache Thrift 工具,我正在从服务器端向客户端抛出一些异常。
唯一的问题是,当客户端调用返回布尔值的方法时,Thrift 忽略了异常,而服务器正在返回布尔值:
所以我想知道是否有可能在调用该方法后检查是否抛出了异常,因为我的 try/catch 块没有这样做。
【问题讨论】:
标签: java exception exception-handling thrift
我正在使用 Apache Thrift 工具,我正在从服务器端向客户端抛出一些异常。
唯一的问题是,当客户端调用返回布尔值的方法时,Thrift 忽略了异常,而服务器正在返回布尔值:
所以我想知道是否有可能在调用该方法后检查是否抛出了异常,因为我的 try/catch 块没有这样做。
【问题讨论】:
标签: java exception exception-handling thrift
为了解决我的问题,我使用了一些不太干净的东西,但它可以解决问题: 我在 Thrift 中定义了一个新结构,就像布尔值的包装器:
struct thriftBool{1: bool success = false,}
现在我的客户收到了所有的异常,而不是做
if(client.myMethod())
我在做:
if(client.myMethod().success)
编辑:似乎 0.9 版本的 Thrift 解决了这个问题。
【讨论】:
你可以使用 AOP。只需添加一个异常处理切入点即可。
【讨论】: