我想知道以下在Java中的区别
System.exit(0);
System.exit(-1);
System.exit(1);
什么时候我必须适当地使用上面的代码?
我想知道以下在Java中的区别
System.exit(0);
System.exit(-1);
System.exit(1);
什么时候我必须适当地使用上面的代码?
当前回答
system . exit (0) 按照惯例,状态码为0表示终止成功。
system . exit (1) -表示由于某些错误导致终止失败
其他回答
系统。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或更高表示执行失败。
正如别人回答0意味着成功,否则。
如果您使用bat文件(窗口)System.exit(x)将生效。
代码java (myapp):
if (error < 2){
help();
System.exit(-1);
}
else{
doSomthing();
System.exit(0);
}
}
bat文件:
java -jar myapp.jar
if %errorlevel% neq 0 exit /b %errorlevel%
rem -- next command if myapp is success --
请看下面的代码
public static void main(String[] args) {
**String s=null;**
try {
System.out.println("Exit");
System.exit(1);
**s.length();**
}catch(Exception e) {
System.out.println("Exception");
}finally {
System.out.println("finally");
}}
在这里 exit(0):通常用于表示成功终止。 exit(1)或exit(-1)或任何其他非零值-通常表示终止不成功。 不管你传递什么作为参数,控制流总是出来,然后不打印任何东西,要么是catch block as .length will throw exception在这里,要么是finally
任何错误代码> 255都将被转换为错误代码% 256。 如果使用自定义错误代码> 255并希望在应用程序逻辑中使用准确的错误代码,则应该特别注意这一点。 http://www.tldp.org/LDP/abs/html/exitcodes.html
零=>一切正常
我预期的一些事情可能会出错出错(坏的命令行,找不到文件,无法连接到服务器)
我没有预料到的事情发生了错误(系统错误-意外异常-外部强制终止,例如kill -9)
(大于128的值实际上是负数,如果你认为它们是8位有符号二进制或双补码)
这里有很多很好的标准退出码