我想知道以下在Java中的区别
System.exit(0);
System.exit(-1);
System.exit(1);
什么时候我必须适当地使用上面的代码?
我想知道以下在Java中的区别
System.exit(0);
System.exit(-1);
System.exit(1);
什么时候我必须适当地使用上面的代码?
当前回答
零=>一切正常
我预期的一些事情可能会出错出错(坏的命令行,找不到文件,无法连接到服务器)
我没有预料到的事情发生了错误(系统错误-意外异常-外部强制终止,例如kill -9)
(大于128的值实际上是负数,如果你认为它们是8位有符号二进制或双补码)
这里有很多很好的标准退出码
其他回答
系统。exit(系统调用)通过启动Java虚拟机的关闭序列来终止当前运行的Java虚拟机。参数用作状态码。
按照惯例,非零状态码表示异常终止。
System.exit(0) or EXIT_SUCCESS; ---> Success
System.exit(1) or EXIT_FAILURE; ---> Exception
System.exit(-1) or EXIT_ERROR; ---> Error
阅读更多Java
在Unix和Linux系统上,0表示执行成功,1或更高表示执行失败。
Exit(0)通常用于表示成功终止。Exit(1)或Exit(-1)或任何其他非零值表示终止不成功。
非零退出状态码,通常表示异常终止。如果n != 0,则由程序员对各种n应用意义。
从https://docs.oracle.com/javase/7/docs/api/java/lang/System.html。
exit参数应该符合程序执行的好坏。这是一种来自较老的编程语言的遗传,在这些语言中,知道是否出现了问题以及出现了什么问题非常有用。
退出代码为
执行正常时为0; 当发生错误时,你可以对不同类型的错误使用不同的值。
如果我是正确的,退出码过去只是正数(我的意思是在UNIX中),根据范围:
1-127是用户定义的代码(因此通过调用exit(n)生成) 128-255是由于不同的unix信号(如SIGSEGV或SIGTERM)而终止产生的代码
但我不认为你在Java上编码时应该在意,这只是一点信息。如果您计划让您的程序与标准工具交互,那么它很有用。
任何错误代码> 255都将被转换为错误代码% 256。 如果使用自定义错误代码> 255并希望在应用程序逻辑中使用准确的错误代码,则应该特别注意这一点。 http://www.tldp.org/LDP/abs/html/exitcodes.html