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