ANTLR中,对于异常处理,支持的很好,功能很丰富了。
对此,我们可以利用ANTLR的异常方面的信息,去实现一些自己所需要的功能,比如:
【记录】antlr异常处理:在ParseTree去getTree之后,判断某个树节点是否出现异常
其中,关于异常处理的方面的经验和心得,可以先去参考:
【整理】antlr的Exception Handling异常处理中的异常Exception的类型
其他的一些,关于异常处理方面的折腾,供参考:
【记录】尝试折腾antlr v3的异常处理和错误恢复:VARIABLE的CLASS的值INPUT故意写错为INPUT1
对于ANTLR的异常处理方面,有更多可以扩展和利用的空间:
ANTLR遇到错误,出现异常时,其默认的机制中,就已经支持:自动尝试恢复错误,然后回退到前一步,继续选择别的分支路径,继续执行下去
而希望实现:当ANTLR解析出错时,就退出,则也是支持的。
详见:
ANTLR解析期间,遇到错误,会自动抛出异常,会打印出一些错误信息。
其默认的异常出错信息,已经相对比较全面了。
但是如果想要输出更多的,其他方面的,详细出错信息,则可以参考:
【记录】用antlr预处理异常MismatchedTokenException时能输出更详细的信息