我想知道以下在Java中的区别

System.exit(0);
System.exit(-1);
System.exit(1);

什么时候我必须适当地使用上面的代码?


当前回答

在system.exit()中放入的数字的差异在其他答案中解释了。但真正的区别在于System.exit()是返回给调用进程的代码。如果程序被操作系统调用,那么返回代码将告诉操作系统,如果system.exit()返回0,那么一切正常,但如果没有出错,那么在父进程中可能会有一些处理程序

其他回答

零=>一切正常

我预期的一些事情可能会出错出错(坏的命令行,找不到文件,无法连接到服务器)

我没有预料到的事情发生了错误(系统错误-意外异常-外部强制终止,例如kill -9)

(大于128的值实际上是负数,如果你认为它们是8位有符号二进制或双补码)

这里有很多很好的标准退出码

Exit(0)通常用于表示成功终止。Exit(1)或Exit(-1)或任何其他非零值表示终止不成功。

任何错误代码> 255都将被转换为错误代码% 256。 如果使用自定义错误代码> 255并希望在应用程序逻辑中使用准确的错误代码,则应该特别注意这一点。 http://www.tldp.org/LDP/abs/html/exitcodes.html

非零退出状态码,通常表示异常终止。如果n != 0,则由程序员对各种n应用意义。

从https://docs.oracle.com/javase/7/docs/api/java/lang/System.html。

system . exit (0) 按照惯例,状态码为0表示终止成功。

system . exit (1) -表示由于某些错误导致终止失败