Разница между выходом (0) и выходом (1) в Python

В чем разница между exit(0) а также exit(1) в питоне?

Я попытался осмотреться, но не нашел конкретного вопроса по этим вопросам. Если ответ уже получен, ссылки будет достаточно.

6 ответов

Решение

0 и 1 - коды выхода.

exit(0) означает чистый выход без каких-либо ошибок / проблем

exit(1) означает, что была какая-то проблема / ошибка / проблема, и поэтому программа завершается.

Это не специфично для Python и довольно распространено. Ненулевой код выхода обрабатывается как ненормальный выход, и иногда код ошибки указывает на проблему. Нулевой код ошибки означает успешный выход.

Это полезно для других программ, оболочки, вызывающей стороны и т. Д., Чтобы узнать, что случилось с вашей программой, и действовать соответствующим образом.

Это определяет состояние завершения программы, когда она завершает работу (обычно 0 для успеха и 1 для ошибки).

Он не уникален для Python, и точный эффект зависит от вашей операционной системы и от того, как называется программа (хотя в 99% случаев, если вы просто запускаете скрипты Python, это не имеет значения).

Стандартное соглашение для всех программ на C, включая Python, предназначено для exit(0) указать на успех, и exit(1) или любое другое ненулевое значение (в диапазоне 1..255) для обозначения отказа. Любое значение вне диапазона 0..255 обрабатывается по модулю 256 (состояние выхода сохраняется в 8-битном значении). Иногда это будет считаться подписанным (так что вы можете увидеть -128, -127 и т. Д.), Но чаще это считается неподписанным.

Этот статус доступен для кода, который вызвал Python. Это соглашение применяется ко всем платформам, хотя значение ненулевого статуса выхода может отличаться на разных платформах.

exit(0)Это приводит к успешному завершению программы.

exit(1): Это приводит к выходу программы с системным значением.

На многих системах exit(1) сигнализирует о каком-то сбое, однако нет никаких гарантий.

Насколько я помню, стандарт C распознает только три стандартных значения выхода:

  • EXIT_SUCCESS - успешное завершение
  • EXIT_FAILURE - неудачное завершение
  • 0 -- такой же как EXIT_SUCCESS

Номер, который вы передаете exit() функция - это просто код возврата вашей программы, который передается операционной системе. С точки зрения вашей программы, нет никакой разницы: выполнение завершится в обоих случаях, а значение, предоставленное функции, будет передано ОС. Но некоторые инструменты и скрипты учитывают код завершения программы. Большинство инструментов возвращают 0, когда они успешны, и ненулевые, чтобы указать на ошибку.

Таким образом, если ваша программа будет запускаться из сценария, автоматизированного инструмента или другого программного обеспечения, которое учитывает код возврата (например, IDE), вы должны быть осторожны с тем, что вы возвращаете.

В случае сомнений просто верните 0, чтобы показать, что все в порядке.

exit(0)был брошен, я пытался запустить некоторые сценарии с моим прокси-сервером (например, Charles/Proxyman). Просто закройте те прокси, которые захватывают вашу сеть

Другие вопросы по тегам