【背景
之前已经折腾了一些,关于antlr的异常处理:
【记录】尝试折腾antlr v3的异常处理和错误恢复:VARIABLE的CLASS的值INPUT故意写错为INPUT1
【记录】折腾antlr的异常处理:使得当初错时,输出更详细的错误信息,包含堆栈信息
【整理】antlr的Exception Handling异常处理中的异常Exception的类型
现在,继续去学习:
The Definitive ANTLR Reference.pdf
中的相关内容,并整理如下:
1.antlr中产生出错详细信息,不是用英文写死的,而是从所相关的内部的对象,去生成的。
其意味着:
(1)BaseRecognizer中的报告错误的函数,生成的错误信息,都是本地化(localized)之后的;
(2)你可以去覆写相关的函数,加上你自己,想要的,当某异常时报告某种错误信息;
2.不要指望
getMessage( )
可以返回你需要的所有的(出错信息)
3.当然,是可以在语法grammar文件中,加上对应的action code,收集相关的信息,去提供给出错的时候,显示出来。
这点,之前已经参考教程,照葫芦画瓢的实现了:
【记录】折腾antlr的异常处理:使得当初错时,输出更详细的错误信息,包含堆栈信息
4.此处,去试试那个paraphrase:
【记录】尝试antlr的paraphrase去提供对于用户更好友好的错误信息
5.
转载请注明:在路上 » 【记录】Antlr中的异常处理学习笔记