Прежде всего - у меня нет проблем с кодом с четным выражением, и у меня есть идея, как это исключение работает.Как уловить IndentationError
Прошу, если есть какой-либо способ поймать IndentationError в коде с помощью блока try/except? Например, допустим, я пишу тест для функции, написанной кем-то другим. Я хочу запустить его в try/except block и обработать все предупреждения, которые он может сделать. Я знаю, что это не лучший пример, но первый приходит мне на ум. Пожалуйста, не сосредотачивайтесь на примере, а скорее на проблеме.
Давайте посмотрим на код:
try:
f()
except IndentationError:
print "Error"
print "Finished"
Функция:
def f():
print "External function"
И результат:
External function
Finished
И это то, что я готов понять, поскольку отступ во внешней функции был постоянным.
Но когда функция выглядеть так:
def f():
print "External function"
print "with bad indentation"
Исключение составляет необработанное:
print "with bad indentation"
^
IndentationError: unexpected indent
Есть ли способ, чтобы достичь этого? Наверное, это вопрос компиляции, и до сих пор я не вижу никакой возможности поймать. Имеет ли смысл except IndentationError
?
Обратите внимание, что 'IndentationError' является подклассом' SyntaxError'. –