Difference between exit(0) and exit(1) in Python

PythonExit Code

Python Problem Overview


What's the difference between exit(0) and exit(1) in Python?

I tried looking around but didn't find a specific question on these lines. If it's already been answered, a link would be sufficient.

Python Solutions


Solution 1 - Python

0 and 1 are the exit codes.

exit(0) means a clean exit without any errors / problems

exit(1) means there was some issue / error / problem and that is why the program is exiting.

This is not Python specific and is pretty common. A non-zero exit code is treated as an abnormal exit, and at times, the error code indicates what the problem was. A zero error code means a successful exit.

This is useful for other programs, shell, caller etc. to know what happened with your program and proceed accordingly.

Solution 2 - Python

This determines the exit status of the program when it finishes running (generally, 0 for success and 1 for error).

It is not unique to Python, and the exact effect depends on your operating system and how the program is called (though 99% of the time, if you're just running Python scripts, it doesn't matter).

Solution 3 - Python

The standard convention for all C programs, including Python, is for exit(0) to indicate success, and exit(1) or any other non-zero value (in the range 1..255) to indicate failure. Any value outside the range 0..255 is treated modulo 256 (the exit status is stored in an 8-bit value). Sometimes, that will be treated as signed (so you might see -128, -127, etc) but more usually it is treated as unsigned.

This status is available to the code that invoked Python. This convention applies across platforms, though the meaning of non-zero exit status can vary on different platforms.

Solution 4 - Python

exit(0): This causes the program to exit with a successful termination.

exit(1): This causes the program to exit with a system-specific meaning.

On many systems, exit(1) signals some sort of failure, however there is no guarantee.

As I recall, the C standard only recognizes three standard exit values:

  • EXIT_SUCCESS -- successful termination
  • EXIT_FAILURE -- unsuccessful termination
  • 0 -- same as EXIT_SUCCESS

Solution 5 - Python

The number you pass to the exit() function is simply your program's return code, which is given to the operating system. From your program's point of view, there is no difference: execution will end in both cases, and the value supplied to the function will be given to the OS. But some tools and scripts take into account the program's exit code. Most tools return 0 when they succeed and nonzero to indicate an error.

So, if your program will be run from a script, an automated tool or from some other software that takes into account the return code (such as an IDE), you must be careful on what you return.

When in doubt, just return 0 to indicate everything is OK.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionseekerView Question on Stackoverflow
Solution 1 - PythonmanojldsView Answer on Stackoverflow
Solution 2 - PythonDavid RobinsonView Answer on Stackoverflow
Solution 3 - PythonJonathan LefflerView Answer on Stackoverflow
Solution 4 - Pythonsailakshmi cheedellaView Answer on Stackoverflow
Solution 5 - PythonJosé Ernesto Lara RodríguezView Answer on Stackoverflow