tgoop.com/BookPython/3735
Create:
Last Update:
Last Update:
Чтобы немедленно остановить выполнение программы на Python, следует использовать sys.exit()
. Альтернативой является функция exit()
, однако она предназначена для использования в интерактивном режиме. Благодаря строковому представлению, она может помочь пользователям, которые пытаются завершить сессию, используя exit
(что поддерживается многими оболочками):
>>> exit
Use exit() or Ctrl-D (i.e. EOF) to exit
>>> str(exit)
'Use exit() or Ctrl-D (i.e. EOF) to exit'
И
exit()
, и sys.exit()
на самом деле не завершают программу, а просто выбрасывают исключение SystemExit
. SystemExit
— это прямой подкласс BaseException
, а значит, он не может быть перехвачен через except Exception
, но может быть перехвачен через except BaseException
или через голый except:
.
>>> try:
... exit()
... except:
... 'Nothing'
...
'Nothing'
Поскольку это может быть проблемой, можно использовать функцию
os._exit
. Она не выбрасывает никаких исключений — просто завершает текущий процесс. Однако это означает, что блоки finally
, а также завершающие действия менеджеров контекста не будут выполнены.
$ python3
Python 3.4.3 (default, Apr 28 2015, 13:37:07)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> try:
... os._exit(42)
... finally:
... print('Bye!')
...
$ ...
👉@BookPython
BY Библиотека Python разработчика | Книги по питону
Share with your friend now:
tgoop.com/BookPython/3735