我想知道以下在Java中的区别
System.exit(0);
System.exit(-1);
System.exit(1);
什么时候我必须适当地使用上面的代码?
我想知道以下在Java中的区别
System.exit(0);
System.exit(-1);
System.exit(1);
什么时候我必须适当地使用上面的代码?
当前回答
非零退出状态码,通常表示异常终止。如果n != 0,则由程序员对各种n应用意义。
从https://docs.oracle.com/javase/7/docs/api/java/lang/System.html。
其他回答
零=>一切正常
我预期的一些事情可能会出错出错(坏的命令行,找不到文件,无法连接到服务器)
我没有预料到的事情发生了错误(系统错误-意外异常-外部强制终止,例如kill -9)
(大于128的值实际上是负数,如果你认为它们是8位有符号二进制或双补码)
这里有很多很好的标准退出码
class calc{
public static void main(String args[])
{
int a, b, c;
char ch;
do{
Scanner s=new Scanner(System.in);
System.out.print("1. Addition\n");
System.out.print("2. Substraction\n");
System.out.print("3. Multiplication\n");
System.out.print("4. Division\n");
System.out.print("5. Exit\n\n");
System.out.print("Enter your choice : ");
ch=s.next().charAt(0);
switch (ch)
{
case '1' :
Addition chose1=new Addition();
chose1.add();
break;
case '2' :
Substraction chose2=new Substraction();
chose2.sub();
break;
case '3' :
Multiplication chose3= new Multiplication();
chose3.multi();
break;
case '4' :
Division chose4=new Division();
chose4.divi();
break;
case '5' :
System.exit(0);
break;
default :
System.out.print("wrong choice!!!");
break;
}
System.out.print("\n--------------------------\n");
}while(ch !=5);
}
}
在上面的代码中,当它的System.exit(0);当我按下案例5时,它正确退出,但当我使用System.exit(1);然后按case 5,它会错误退出当我尝试case 15时,它会正确退出我知道,当我们在参数中放入任何int时,它会指定,它会从那个位置取字符例如,如果我输入(4),它意味着从那个字符串中取第5个字符如果我输入(3),它意味着从那个输入字符串中取第4个字符
system . exit (0) 按照惯例,状态码为0表示终止成功。
system . exit (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 --
系统。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或更高表示执行失败。