Easyexceptions

Как работают исключения в Python?

1Постановка

Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.

2Решение

Конструкция try/except/else/finally. except перехватывает указанный тип, else — если не было исключения, finally — всегда.

try:
    value = int(input())
except ValueError as e:
    print(f"не число: {e}")
except (TypeError, KeyError):
    print("другая ошибка")
else:
    print(f"успех: {value}")   # если не было исключения
finally:
    cleanup()                  # всегда

# Custom exception
class InvalidAgeError(Exception):
    pass

# Exception chaining
raise InvalidAgeError() from original_exception
raise InvalidAgeError() from None   # suppress chain
  • Порядок except — от производных к базовым (Exception после ValueError);
  • Базовые: BaseException (SystemExit, KeyboardInterrupt, GeneratorExit) — обычно не ловить;
  • Не ловить голый except: (ловит SystemExit, KeyboardInterrupt).

3Как отвечать

  • Сначала уточните условия и ограничения, покажите аналитическое мышление.
  • Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
  • Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡

На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.