все Python 3Исключенияисключение
KeyboardInterrupt
встроенные исключения
Пользователь прервал программу (Ctrl+C). Наследует BaseException, поэтому `except Exception` его не ловит.
Синтаксис
raise KeyboardInterrupt
Главная ловушка — голый except: или except BaseException внутри цикла: он проглатывает Ctrl+C, и программа перестаёт останавливаться. Если перехват всё-таки нужен (закрыть файл, сохранить прогресс), сделай очистку и пробрось исключение дальше через raise. Прерывание приходит в главный поток и может возникнуть между любыми двумя инструкциями, так что состояние на момент перехвата бывает недоделанным наполовину.
Примеры
try:
raise KeyboardInterrupt
except KeyboardInterrupt as e:
print(type(e).__name__) # → KeyboardInterrupt
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности