2
我正在使用Thrift服务器,它基本上只是一个围绕斯坦福分析器的封装(尽管这不是太重要)。有时候,斯坦福分析师会根据所给出的输入来抛出有用的例外;例如,如果输入太长(根据解析器),生成输入的用户应该会收到此异常,以便他们可以决定如何处理它。但是,我似乎无法让Thrift通过此异常,而只向客户端返回Apache Thrift:抛出由方法中执行的代码抛出的异常
Internal error processing <name of Thrift method being called>
。
我在那个方法下面的代码:
try
{
// a whole bunch of Stanford Parser stuff
}
catch (Exception e)
{
throw new TApplicationException(TApplicationException.INTERNAL_ERROR, e.getMessage());
}
和方法确实抛出一个TApplicationException
,但无论的e.getMessage()
内容不被发送到客户端。我如何才能获得斯坦福分析器抛出的异常情况,并由Thrift向客户抛出异常?
在你的节俭清单中,你是否认为该方法可以抛出一些例外? – darkheir 2013-02-27 08:37:13
我会推荐这个相关问题的答案:http://stackoverflow.com/questions/11755292/how-to-use-java-built-in-exception-in-thrift-idl – dhal 2013-02-27 20:02:16
有趣的...我见过这个问题已经出现了,但我并不认为这就是我所期待的。也许是。而@darkheir,是的,但我也尝试过这个声明,没有任何区别。 :/ – dmn 2013-02-28 19:28:27