2015-04-01 132 views
0

我是ANTLR的新手。这是我正在尝试编写Visitor类的语法。来自ANTLR4访客的投掷异常

grammar extremelysimpleexpr ; 

stat : expr ; 
expr : sub ; 
sub : add ('-' add)* ; 
add : VAL ('+' VAL)* 
    | VAL 
    ; 


VAL : [0-9]+ ; 
[ \t\n\r]+ -> skip ; 

Vistor.java

......... 
    public Integer vistAdd(ctx) { 
     if (some cond) { 
      throw new Exception() 
     } 
    } 
.......... 

的问题是我不能够抛出异常,因为生成的代码不处理异常,方法签名不具有其签名throws exception。有没有办法解决它?

回答

0

正如Sam Harwell所建议的那样,一个未经检查的例外可以起作用 - 作为两个选项之一 - here。我只是试了一下。

你可以在任何你想要的位置捕获该异常。