> For the complete documentation index, see [llms.txt](https://olexsyn.gitbook.io/enote/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://olexsyn.gitbook.io/enote/progr/python/modules/sys/exit.md).

# exit()

sys.exit(\[*arg*])

Викликати виняток [`SystemExit`](https://docs.python.org/uk/3/library/exceptions.html#SystemExit), сигналізуючи про намір вийти з інтерпретатора.

Необов’язковий аргумент *arg* може бути цілим числом, що дає статус виходу (за замовчуванням нуль), або іншим типом об’єкта. Якщо це ціле число, нуль вважається «успішним завершенням», а будь-яке ненульове значення вважається «ненормальним завершенням» оболонками тощо. Більшість систем вимагають, щоб він знаходився в діапазоні 0–127 (в Ubuntu 22.04 до 255), і в іншому випадку дають невизначені результати. У деяких системах є угода про призначення конкретних значень конкретним кодам виходу, але вони, як правило, недостатньо розроблені; Програми Unix зазвичай використовують 2 для синтаксичних помилок командного рядка та 1 для всіх інших видів помилок. Якщо передається інший тип об’єкта, `None` еквівалентно передачі нуля, а будь-який інший об’єкт друкується в [`stderr`](https://docs.python.org/uk/3/library/sys.html#sys.stderr) і призводить до коду виходу 1. Зокрема, `sys.exit( "повідомлення про помилку")` — це швидкий спосіб вийти з програми, коли виникає помилка.

Оскільки [`exit()`](https://docs.python.org/uk/3/library/constants.html#exit) зрештою «тільки» викликає виняток, він вийде з процесу лише під час виклику з основного потоку, і виняток не перехоплюється. Дії очищення, визначені пунктами finally операторів [`try`](https://docs.python.org/uk/3/reference/compound_stmts.html#try), виконуються, і можна перехопити спробу виходу на зовнішньому рівні.

Змінено в версії 3.6: Якщо під час очищення виникає помилка після того, як інтерпретатор Python переловив [`SystemExit`](https://docs.python.org/uk/3/library/exceptions.html#SystemExit) (наприклад, помилка очищення буферизованих даних у стандартних потоках), статус виходу змінюється на 120.

Див. також

{% content-ref url="/pages/3Cd5QeQiIZMt2NffLfQf" %}
[Python exit commands: quit(), exit(), sys.exit() and os.\_exit()](/enote/progr/python/exit-quit.md)
{% endcontent-ref %}
