Я хотел бы узнать разницу между приведенными ниже в Java
System.exit(0);
System.exit(-1);
System.exit(1);
Когда мне нужно соответствующим образом использовать вышеуказанный код?
Я хотел бы узнать разницу между приведенными ниже в Java
System.exit(0);
System.exit(-1);
System.exit(1);
Когда мне нужно соответствующим образом использовать вышеуказанный код?
Параметр выхода должен быть квалифицирован, если выполнение программы было хорошим или плохим. Это своего рода наследственность от старых языков программирования, где полезно знать, что-то пошло не так, и что пошло не так.
Код выхода
0
, когда выполнение прошло нормально;1
, -1
, whatever != 0
, когда произошла некоторая ошибка, вы можете использовать разные значения для различных типов ошибок.Если я правильный код выхода, который был просто положительным числом (я имею в виду в UNIX) и в соответствии с диапазоном:
1-127
- это пользовательские коды (сгенерированные при вызове exit(n)
)128-255
являются кодами, генерируемыми завершением из-за разных сигналов unix, таких как SIGSEGV или SIGTERMНо я не думаю, что вам нужно заботиться о кодировании на Java, это всего лишь немного информации. Это полезно, если вы планируете взаимодействовать со стандартными инструментами.
Zero
= > Все в порядке
Positive
= > То, что я ожидал, может пойти не так, как ошибочно, ошибочно (плохая командная строка, не удается найти файл, не удалось подключиться к серверу)
Negative
= > Что-то, чего я не ожидал, пошло не так (системная ошибка - непредвиденное исключение - принудительное завершение извне, например kill -9
)
(значения, превышающие 128, фактически отрицательны, если вы считаете их 8-разрядными бинарными бинарными или двумя дополнениями)
Здесь загружается хорошее стандартные коды выхода
System.exit(system call)
завершает работу текущей виртуальной машины 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
или выше для неудачных исполнений.
Не нулевой код статуса выхода, как правило, указывает на ненормальное завершение. если n != 0
, то до программиста применить значение к различным n.
От https://docs.oracle.com/javase/7/docs/api/java/lang/System.html.
Вот ответ.
System.exit(0);// normal termination - Successful - zero
System.exit(-1);//Exit with some Error
System.exit(1);//one or any positive integer // exit with some Information message
Как говорят другие, 0
означает успех, в противном случае.
Если вы используете файл bat (window) 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 --
Хороший gotcha - любой код ошибки > 255 будет преобразован в код ошибки% 256. Нужно быть особенно осторожным, если они используют специальный код ошибки > 255 и ожидают точный код ошибки в логике приложения. http://www.tldp.org/LDP/abs/html/exitcodes.html
System.exit(0) по соглашению, ненулевой код состояния указывает на ненормальное завершение.
System.exit(1) -Это означает, что завершение неудачно из-за некоторой ошибки
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); и когда я нажимаю case 5, он выходит из строя, но когда я использую System.exit(1); и нажмите case 5, он выходит с ошибкой, и снова, когда я пытаюсь с случаем 15, он выходит из него должным образом. Я узнал, что когда мы помещаем любой внутренний аргумент, он указывает, что он принимает символ из этой позиции, т.е. если я ставлю (4), что это означает, что он берет 5-й символ из этой строки, если его (3), то это означает, что 4-й символ из этой введенной строки