Python Glossary English

все Python 3Исключенияисключение

SystemExit

встроенные исключения

Поднимается sys.exit() для завершения программы. Наследует BaseException.

Синтаксис

raise SystemExit

Наследует BaseException, а не Exception — именно поэтому обычный except Exception его не ловит и sys.exit() спокойно доходит до интерпретатора. Зато голый except: или except BaseException его проглотит, и программа не завершится: это самая частая причина жалобы «мой sys.exit() не срабатывает». Аргумент sys.exit() оседает в атрибуте code: число становится кодом возврата, строка печатается в stderr, а код возврата будет 1.

Примеры

try:
    raise SystemExit
except SystemExit as e:
    print(type(e).__name__)   # → SystemExit

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности