我有一个由其他人编写的 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/