我有一个语法,它会传递不匹配的输入异常,如传递错误的输入时所预期的那样,但是问题是它试图恢复导致Java.lang.outofmemoryexception的行为,从而终止了我不希望发生的线程。
我该如何处理?我应该重写哪个函数,以便它不尝试恢复,而是通知并继续?
最佳答案
您可以覆盖解析器或词法分析器的reportError(...)
方法,并引发异常,而不是让ANTLR(试图恢复)。
另请参见:ANTLR 3.0 Error Reporting and Recovery。
我有一个语法,它会传递不匹配的输入异常,如传递错误的输入时所预期的那样,但是问题是它试图恢复导致Java.lang.outofmemoryexception的行为,从而终止了我不希望发生的线程。
我该如何处理?我应该重写哪个函数,以便它不尝试恢复,而是通知并继续?
最佳答案
您可以覆盖解析器或词法分析器的reportError(...)
方法,并引发异常,而不是让ANTLR(试图恢复)。
另请参见:ANTLR 3.0 Error Reporting and Recovery。