生成Thrift tutorial到Java,生成一个接口Calculator.Iface
,其中每个方法声明抛出一个TException。的为什么吗
为什么不用业务逻辑保持清洁?
编辑:我想动机是知道Thrift调用中是否发生了什么。那么为什么不把它变成运行时异常呢?任何人都有一个链接到文件/对话的头脑风暴Thrift的例外吗?答案 0 :(得分:1)
我想动机是要知道Thrift中是否发生了什么事 调用。那么为什么不把它变成运行时异常呢?
可能推动决策的一个原因是,使用定义结构的错误文件很容易错误配置中间人消息协议(如thrift或protobuf)。例如,当您尝试解析IOException
InvalidProtocolBufferException时,Protobuf会抛出into a structure ByteString
,从而迫使您处理它。
我不是任何形式的已检查例外的粉丝,并且已经在各种论坛和讨论领域进行了长时间的辩论。不久前,我正在研究的框架需要支持多种消息协议绑定(如thrift,json,protobuf等)。我决定处理已检查的异常并将其作为RuntimeParsingException
抛出,如果我遇到客户端和服务器结构之间的不一致。
当底层消息协议明天可以更改时,期望客户端处理特定的消息级别协议异常(通过强制执行)是不切实际的。