Повышение SyntaxError внутри синтаксического анализа на основе Python

Я пишу парсер на основе Python, который может понять некоторые файлы конфигурации, которые мы используем. Файлы в основном состоят из пар (имя, тип) и (имя, значение):

Файл параметров:

# defines a field called some_bool of type boolean
some_bool : bool

Файл конфигурации:

# assigns True to some_bool
some_bool = bool

Я не уверен, что делать, когда я сталкиваюсь с синтаксической ошибкой внутри файла, который я обрабатываю:

# bol instead of bool
some_bool : bol

Неужели это плохая форма для повышения исключения SyntaxError в этом случае или исключения SyntaxError лучше оставить, чтобы показать проблемы в коде Python?

Ответ 1

с помощью SyntaxError может быть запутанным. Либо я создам специальный тип исключения, например eg. ParseError или игнорировать данное значение и просто войти в систему как предупреждение

Ответ 2

СинтаксисError может быть запутанным, но мне требуется дополнительная аргументация, прежде чем я убежден, что это хорошая причина не использовать его в этих случаях. ИМО в равной степени или более запутанно использовать другой вид исключения.

Даже если это может сбивать с толку при разборе кода (например, в домене), мы можем - в сообщении об ошибке - сделать однозначным, что это язык, специфичный для домена, который имеет ошибку, а не источник Python.

Кроме того, SyntaxError предлагает готовые поля для номера строки и имени файла. Роллинг собственного SyntaxError потребует повторного использования этих колес.

В принятом ответе здесь говорится

Используйте наиболее специфичный конструктор исключений, который семантически подходит для вашей проблемы.

... и ошибка, возникающая при синтаксическом анализе, является (семантически) синтаксической ошибкой.

У меня возникает ощущение, что однозначно сконструированный SyntaxError - это правильная вещь в таких случаях. Это также принятый ответ здесь.

Может ли кто-нибудь убедить меня в противном случае?