TGViewer
Точка входа в программирование Точка входа в программирование @prog_point · 17.9K subscribers
Post #5200 294
Почему bare except перехватывает даже Ctrl+C

Программа продолжает работу после ошибки, но теперь её трудно остановить. Причиной может быть обработчик без указанного типа исключения:

try:
raise KeyboardInterrupt
except:
print("Перехватили даже прерывание")


KeyboardInterrupt и SystemExit наследуются от BaseException, но не от Exception. Голый except: ловит их тоже; except Exception: оставляет такие сигналы завершения в покое.

Это не означает, что except Exception: нужно ставить везде. Если ожидаете ошибку преобразования строки в число, ловите ValueError вокруг этого преобразования. Тогда случайный NameError в соседней логике не превратится в сообщение «Введите число».

Разбор иерархии исключений помогает выбрать границу обработки. Перехватывать стоит те отказы, для которых у программы есть осмысленный способ продолжить работу.
  • 🆒 1
More from @prog_point
  1. Oct 18, 2026Почему мощный компьютер не решает любую задачу Если алгоритм перебирает все подмножества,…
  2. Oct 18, 2026Токен есть, права доступа нет Сервер проверил токен и узнал пользователя. Но это ещё не от…
  3. Oct 17, 2026Коллизии хеш-таблицы: почему удаление ломает поиск Представьте таблицу из пяти ячеек и уче…
  4. Oct 17, 2026Инварианты: какие состояния объекта должны быть невозможны У дроби не может быть нулевого…
  5. Oct 17, 2026Копия есть, а вложенные объекты всё ещё общие Вы скопировали настройки для теста, поменяли…
  6. Oct 16, 2026Что Big O говорит о скорости, а что скрывает Два вложенных цикла не обязательно выполняют…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →