【问题标题】:How to know when an exception is thrown如何知道何时抛出异常
【发布时间】:2012-03-20 10:29:50
【问题描述】:

我正在使用 Apache Thrift 工具,我正在从服务器端向客户端抛出一些异常。

唯一的问题是,当客户端调用返回布尔值的方法时,Thrift 忽略了异常,而服务器正在返回布尔值:

Here is the issue opened

所以我想知道是否有可能在调用该方法后检查是否抛出了异常,因为我的 try/catch 块没有这样做。

【问题讨论】:

    标签: java exception exception-handling thrift


    【解决方案1】:

    为了解决我的问题,我使用了一些不太干净的东西,但它可以解决问题: 我在 Thrift 中定义了一个新结构,就像布尔值的包装器:

    struct thriftBool{1: bool success = false,}
    

    现在我的客户收到了所有的异常,而不是做

    if(client.myMethod())
    

    我在做:

    if(client.myMethod().success)
    

    编辑:似乎 0.9 版本的 Thrift 解决了这个问题。

    【讨论】:

    • 你知道0.9版本是如何解决这个问题的吗?
    • 不知道,只是我在开票一年后一直在做一些测试,问题似乎解决了。在我保留包装后,我可能会错
    【解决方案2】:

    你可以使用 AOP。只需添加一个异常处理切入点即可。

    【讨论】:

      猜你喜欢
      • 2017-10-07
      • 2011-09-20
      • 2017-08-09
      • 2015-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      相关资源
      最近更新 更多