gpt4 book ai didi

java - 为什么在每个接口(interface)方法上声明 org.apache.thrift.TException?

转载 作者:行者123 更新时间:2023-12-01 12:04:11 25 4
gpt4 key购买 nike

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

为什么不直接保持业务逻辑的简洁呢?

编辑:我想动机是想知道 Thrift 调用中是否发生了某些事情。那么为什么不将其设置为运行时异常呢?有人有关于 Thrift 异常(exception)情况的头脑 Storm 文档/对话的链接吗?

最佳答案

I guess the motivation is to know if something happened in the Thrift invocation. So why not make it a runtime exception?

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

我也不喜欢任何形式的检查异常,并且在各种论坛和讨论场所对此进行了详细的辩论。不久前,我正在开发的一个框架需要支持多个消息协议(protocol)绑定(bind)(如 thrift、json、protobuf 等)。我决定处理已检查的异常,并在客户端和服务器结构之间遇到不一致时将它们作为 RuntimeParsingException 抛出。

当底层消息协议(protocol)明天可能发生变化时,期望客户端处理特定的消息级协议(protocol)异常(通过强制执行)是不切实际的。

关于java - 为什么在每个接口(interface)方法上声明 org.apache.thrift.TException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27765874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com