The best answers to the question “Difference in System. exit(0) , System.exit(-1), System.exit(1 ) in Java” in the category Dev.
I’d like to know the difference between the following in Java
System.exit(0); System.exit(-1); System.exit(1);
When do I have to use the above code appropriately?
Zero => Everything Okay
Positive => Something I expected could potentially go wrong went wrong (bad command-line, can’t find file, could not connect to server)
Negative => Something I didn’t expect at all went wrong (system error – unanticipated exception – externally forced termination e.g.
(values greater than 128 are actually negative, if you regard them as 8-bit signed binary, or twos complement)
There’s a load of good standard exit-codes here
The parameter of exit should qualify if the execution of the program went good or bad. It’s a sort of heredity from older programming languages where it’s useful to know if something went wrong and what went wrong.
Exit code is
0when execution went fine;
whatever != 0when some error occurred, you can use different values for different kind of errors.
If I’m correct exit codes used to be just positive numbers (I mean in UNIX) and according to range:
1-127are user defined codes (so generated by calling
128-255are codes generated by termination due to different unix signals like SIGSEGV or SIGTERM
But I don’t think you should care while coding on Java, it’s just a bit of information. It’s useful if you plan to make your programs interact with standard tools.
A non-zero exit status code, usually indicates abnormal termination. if
n != 0, its up to the programmer to apply a meaning to the various n’s.
System.exit(system call) terminates the currently running Java virtual machine by initiating its shutdown sequence. The argument serves as a status code.
By convention, a nonzero status code indicates abnormal termination.
System.exit(0) or EXIT_SUCCESS; ---> Success System.exit(1) or EXIT_FAILURE; ---> Exception System.exit(-1) or EXIT_ERROR; ---> Error
Read More at Java
On Unix and Linux systems,
0 for successful executions and
1 or higher for failed executions.