Как управлять ParseException в Javacc

#exception #javacc #parseexception

#исключение #javacc #parseexception

Вопрос:

Я создал лексер и синтаксический анализатор в javacc и пытаюсь обрабатывать ошибки. Сначала я пытался использовать блоки try-catch для каждого символа, отсутствующего в анализаторе, но я прочитал в Интернете кое-что о том, как перехватить исключение ParseException только один раз в основном блоке с помощью try-catch и манипулировать им, чтобы получить последний прочитанный токен и следующий токен и другие подобные вещи. Я пытаюсь узнать больше об этом, но я не сталкивался ни с чем другим, поскольку в большинстве мест используются блоки try-catch.

До сих пор я знаю, что могу сделать: e.currentToken.image, если я поймаю (ParseException e), а также e.getErrorOffset() , но хотел бы знать, есть ли другие методы, которые можно использовать для печати более понятной и информативной ошибки. Если у кого-нибудь есть какие-либо примеры или вы могли бы направить меня к какому-либо документу.Заранее спасибо.

Ответ №1:

Лучшим способом получения лучших (или других) сообщений об ошибках может быть изменение самого класса ParseException.