在thrift中定义的异常

时间:2012-10-25 19:25:48

标签: thrift

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

1 个答案:

答案 0 :(得分:1)

它取决于生成代码的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,客户端将不会看到此错误(但可能是另一个异常)。