处理Javaparser中的异常

时间:2013-09-09 22:24:43

标签: javaparser

我正在尝试处理由于令牌错误而导致的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)

任何想法,如何处理异常?提前致谢

2 个答案:

答案 0 :(得分:1)

如名称所示,TokenMgrError是一个错误。因此,您必须捕获错误而不是异常。如果你想同时捕获Error和Exception,你可以使用Throwable。

最初,这个错误是由Javaparser使用的JavaCC(TokenMgrError)抛出的。

答案 1 :(得分:1)

从版本3开始,JavaParser将/不应再抛出此错误。