Возможно-ли перехватить фатальные ошибки Python?

Привет!

Как я могу перехватить фатальные ошибки, например, SyntaxError, AtributeError?
Я пробовал через try, но у меня не получилось перехватить такие ошибки.
Как это сделать?

Спасибо!
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
YuriyVorobyov1333
@YuriyVorobyov1333
Software Developer (Node.js/Angular)
Вы не можете это сделать, т.к. это действие срабатывает до выполнения строчки кода

Тут был написан комментарий, который уже удалили)
Так вот там предлагали такое решение:
try:
  # строка с ошибкой
except SyntaxError:
  # действие при ошибке

Так вот такое поведение нельзя обработать, яркий пример:
try:
  a + a = a
except SyntaxError:
  print("ошибочка")

Вызвав данный код, мы получим Syntax Error до обработки, вот и все дела)
Вы можете его обработать таким способом:
try:
  eval("a + a = a")
except SyntaxError:
  print ("ошибочка")

Но самом по себе применение eval - bad practices

upd: вызов таких экспешенов происходит при первоначальном анализе кода, когда ни о каких try/except и речи не идет
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы