все Python 3Исключенияисключение
SyntaxError
встроенные исключения
Синтаксически некорректный код (обнаруживается при компиляции): eval('1 +').
Синтаксис
raise SyntaxError
Обернуть собственный сломанный код в try/except невозможно: файл разбирается целиком до запуска, и ошибка возникает раньше, чем выполнится первая строка. Перехват осмыслен только для кода, компилируемого на лету — eval(), exec(), compile(), импорт стороннего модуля. У объекта есть msg, filename, lineno, offset и text, по ним показывают точное место; IndentationError и TabError — его подклассы.
Примеры
try:
eval('1 +')
except SyntaxError as e:
print(type(e).__name__) # → SyntaxError
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности