Python Glossary English

все 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Сообщить о неточности