Python中exit(0)和exit(1)之间的区别

时间:2012-02-24 05:49:34

标签: python exit-code

Python中exit(0)exit(1)之间有什么区别?

我试着环顾四周,但没有找到这些问题的具体问题。如果它已经被回答,那么链接就足够了。

5 个答案:

答案 0 :(得分:199)

0和1是退出代码。

exit(0)表示没有任何错误/问题的干净退出

exit(1)表示存在一些问题/错误/问题,这就是程序退出的原因。

这不是特定于Python的,而且很常见。非零退出代码被视为异常退出,有时,错误代码表示问题所在。零错误代码意味着成功退出。

这对其他程序,shell,调用者等非常有用,可以了解您的程序发生了什么并继续进行。

答案 1 :(得分:17)

这确定了程序运行完成后的exit status(通常,0表示成功,1表示错误)。

它并不是Python的独特之处,确切的效果取决于您的操作系统以及程序的调用方式(尽管99%的情况下,如果您只是运行Python脚本,则无关紧要)。 / p>

答案 2 :(得分:8)

所有C程序(包括Python)的标准约定是exit(0)表示成功,exit(1)或任何其他非零值(在1..255范围内)表示失败。超出范围0..255的任何值都以256为模(处理退出状态存储在8位值中)。有时,这将被视为已签名(因此您可能会看到-128,-127等),但通常将其视为无符号。

此状态可用于调用Python的代码。此约定适用于跨平台,但非零退出状态的含义可能因平台而异。

答案 3 :(得分:5)

传递给exit()函数的数字只是程序的返回代码,该代码将提供给操作系统。从程序的角度来看,没有区别:执行将在两种情况下结束,并且提供给函数的值将被赋予操作系统。但是一些工具和脚本会考虑程序的退出代码。大多数工具成功时返回0,非零表示错误。

因此,如果您的程序将从脚本,自动化工具或考虑到返回代码的其他软件(例如IDE)运行,那么您必须小心返回的内容。

如果有疑问,只需返回0表示一切正常。

答案 4 :(得分:1)

exit(0):这会导致程序以成功终止退出。

exit(1):这会导致程序以系统特定的含义退出。

在许多系统上,exit(1)表示某种失败,但是存在 不能保证。

我记得,C标准只承认三个标准退出 值:

  • EXIT_SUCCESS - 成功终止
  • EXIT_FAILURE - 终止失败
  • 0 - 与EXIT_SUCCESS
  • 相同