все Python 3sysфункция
sys.exit()
управление
Завершает программу. Аргумент 0 — успешное завершение, не-0 — ошибка. Поднимает SystemExit.
Синтаксис
sys.exit([arg])
# arg: None или 0 — успех, другое число — ошибка, строка — в stderr и код 1
SystemExit наследуется от BaseException, а не от Exception: except Exception его пропустит, а вот голый except: или except BaseException молча съест выход, и программа поедет дальше — блоки finally при этом отрабатывают всегда. Если аргумент не число, объект печатается в stderr, а код возврата будет 1: sys.exit('файл не найден') — это сообщение об ошибке, а не успешное завершение.
Примеры
import sys
for code in (0, 1, 'Error!'):
try:
sys.exit(code)
except SystemExit as e:
print(e.code) # → 0 / 1 / Error!
print(issubclass(SystemExit, Exception)) # → False — except Exception его не ловит
print(issubclass(SystemExit, BaseException)) # → True
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности