Выход по ошибке из парсера, написанного методом рекурсивного спуска. Без исключений можно, но с исключениями - на много процентов компактнее. Для выхода в любом месте бросаем исключение.  Исключения в данном применении не "нужны", но "полезны". Дальше идут священные войны и вкусовщина, давайте попробуем без этого обойтись

В случае A2 можно выделить парсинг в отдельную активность. Я, кстати, пока не понял, почему TFPET не ломается после ошибки в парсере, вызывающей красный экран. Не смотрел, как вызывается, да и вообще не понимаю, как точно происходит обработка исключения в A2.