Самый простой способ решить этот вопрос - найти, как это исключение возникает на практике.У меня уже загружен исходный код CPython, поэтому я сделал
find . -type f -name "*.py" | xargs grep "raise SyntaxError"
Мы видим, что есть служебный скрипт, который выполняет преобразования файлов, который вызывает синтаксическую ошибку, если он не видитволшебный байт в правильном месте.Кроме того, библиотека xml
использует их при синтаксическом анализе выражений XPath.
Это говорит о том, что она предназначена для использования пользовательским кодом, который также занимается синтаксическим анализом других вещей.Поисковый запрос Google для «повышения SyntaxError» показывает много результатов использования этого таким образом.
Я не очень хорошо знаком с внутренними компонентами Python, но я предполагаю, что смог обработать ошибку при обработке исходного кодатак же, как они обрабатывают другие ошибки, все становится лучше.Плюс eval
и т. Д. Должны что-то поднять, как документы и предыдущее состояние ответа.