为什么在每个接口方法上声明org.apache.thrift.TException?

时间:2015-01-04 13:14:03

标签: java thrift

生成Thrift tutorial到Java,生成一个接口Calculator.Iface,其中每个方法声明抛出一个TException。的为什么吗

为什么不用业务逻辑保持清洁?

编辑:我想动机是知道Thrift调用中是否发生了什么。那么为什么不把它变成运行时异常呢?任何人都有一个链接到文件/对话的头脑风暴Thrift的例外吗?

1 个答案:

答案 0 :(得分:1)

  

我想动机是要知道Thrift中是否发生了什么事   调用。那么为什么不把它变成运行时异常呢?

可能推动决策的一个原因是,使用定义结构的错误文件很容易错误配置中间人消息协议(如thrift或protobuf)。例如,当您尝试解析IOException InvalidProtocolBufferException时,Protobuf会抛出into a structure ByteString,从而迫使您处理它。

我不是任何形式的已检查例外的粉丝,并且已经在各种论坛和讨论领域进行了长时间的辩论。不久前,我正在研究的框架需要支持多种消息协议绑定(如thrift,json,protobuf等)。我决定处理已检查的异常并将其作为RuntimeParsingException抛出,如果我遇到客户端和服务器结构之间的不一致。

当底层消息协议明天可以更改时,期望客户端处理特定的消息级别协议异常(通过强制执行)是不切实际的。