thrift - thrift 中定义的异常

标签 thrift

我有一个由其他人编写的 Thrift 文件,其中存在一些数据格式异常。我有由 thrift 编译器生成的 java 文件,我几乎无法理解。我正在尝试验证一些日期输入,当输入无效时,它应该抛出该异常。我真的不确定是否可以使用该异常。

最佳答案

这取决于生成代码的 Thrift IDL 文件。如果 IDL 不存在,则可以通过查看为每个函数调用生成的反序列化方法来获取详细信息,通常它们的名称类似于 recv_Foo() 和 recv_Bar()。

exception MyError
{
  1: i32  code
}

exception UglyError
{
  1: i64  what_a_mess
}

Service Sample
{
  i32 Foo() throws (1: MyError me)
  i32 Bar() throws  (1: MyError me, 2: UglyError ue)
}

Foo() 只能抛出 MyError,而 Bar() 可以抛出两个异常。如果在处理 Foo() 调用时抛出 UglyError,客户端将不会看到此错误(但可能是另一个异常)。

关于thrift - thrift 中定义的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13075783/

相关文章:

python - golang 和 python 节俭通信

hadoop - hadoop的各种大数据传输方法相互比较如何?

php - 使用 Thrift 进行 PHP 到 C++ 的翻译

java - Thrift TSimpleServer 在多次成功请求后变得无响应

java - 如何使用 piqi 定义通过 Java 从 C++ 读取 JSON 数据

node.js - Apache Thrift 警告 "No seqid to unset"(NodeJS)

go - 如何构建 thrift4go?

sockets - Apache Thrift - 如何提供安全通信

hadoop - 尝试使用 Sqoop 将数据从 Cassandra 传输到 Hadoop 时出错

java - 协调 thrift 中继承的缺失与 Java/Scala 中的方法定义