Python Glossary English

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