我正在尝试处理由于令牌错误而导致的Javaparser库产生的异常。我使用了以下代码。
String content=getTheSource();
ByteArrayInputStream bin=new ByteArrayInputStream(content.getBytes());
try
{
CompilationUnit cu=JavaParser.parse(bin);
} catch (Exception e) {
// TODO Auto-generated catch block
//e.printStackTrace();
//my handling code here
}finally{
bin.close();
}
但是,异常从未被捕获过,并且我从其他地方生成了另一个异常。我有这个例外:
线程“main”中的异常japa.parser.TokenMgrError:第1行第16列的词汇错误。遇到:“#”(35),之后:“” at japa.parser.ASTParserTokenManager.getNextToken(ASTParserTokenManager.java:2247) at japa.parser.ASTParser.jj_ntk(ASTParser.java:9986) at japa.parser.ASTParser.ClassOrInterfaceBody(ASTParser.java:926) at japa.parser.ASTParser.ClassOrInterfaceDeclaration(ASTParser.java:604) at japa.parser.ASTParser.TypeDeclaration(ASTParser.java:524) at japa.parser.ASTParser.CompilationUnit(ASTParser.java:269) at japa.parser.JavaParser.parse(JavaParser.java:81) at japa.parser.JavaParser.parse(JavaParser.java:94) 在misc.CompileTest.main(CompileTest.java:45)
任何想法,如何处理异常?提前致谢
答案 0 :(得分:1)
如名称所示,TokenMgrError是一个错误。因此,您必须捕获错误而不是异常。如果你想同时捕获Error和Exception,你可以使用Throwable。
最初,这个错误是由Javaparser使用的JavaCC(TokenMgrError)抛出的。
答案 1 :(得分:1)
从版本3开始,JavaParser将/不应再抛出此错误。