Difference between exit(0) and exit(1) in Python
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.
Solution 1:
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:
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:
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.