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 подскажет развёрнутый ответ в реальном времени.