2013-10-13 1 views
6

Я видел большое количество вопросов о System.exit(int status) на stackoverflow.Java. System.exit (статус int). Значение для статуса выхода

Например:

Difference in System. exit(0) , System.exit(-1), System.exit(1) in Java

difference between System.exit(0) and System.exit(-1)

Но я не вижу ответ на моем частичном вопрос:

У нас есть прямая связь между exit status и System Error Codes для продуктов Microsoft (Microsoft site)?

У нас нет прямых соединений, , но: мы можем установить это соединение?

Если мы запускаем нашу программу java на ОС Windows, и наша программа java имеет System.exit(int status) заявление, можем ли мы использовать System Error Codes list или нет?

Это хорошая идея или нет?

Что вы думаете об этом? Любые другие идеи?

Пример:

  • программа Java была запущена с помощью командной строки на Wisdows ОСЕ;
  • Наша программа java выбрала исключение, например FileNotFoundException;
  • После этого мы приняли решение закрыть нашу программу через System.exit(int state);
  • В этом случае может быть exit status равным ?

, потому что (Microsoft site):

ERROR_FILE_NOT_FOUND 
2 (0x2) 
The system cannot find the file specified. 

ответ

7

Статус выхода - это значение по вашему выбору. Если вы звоните в свою программу и затем реагируете на основании значения выхода, полученного после его завершения, вы можете обращаться с ними по своему усмотрению.

Существует только одно общее правило, состоящее в том, что статус выхода 0 предполагает, что ваша программа завершена без ошибок. Кроме того, отрицательный статус выхода обычно считается прекращением из-за неожиданной ошибки, в то время как положительный статус выхода считается более или менее изящным окончанием.

Но опять же: если нет командного файла, вызывающего ваш код, никто не будет реагировать на статус выхода, и поэтому вы можете вернуть все, что захотите, оно не будет иметь никакого эффекта.

2

код выхода просто информационной и может быть основана на вашем дизайне. Коды Microsoft важны, потому что программное обеспечение MS может попытаться распознать их, так же как и в Linux, существует different set предопределенных согласованных кодов. Не будет больно использовать один из наборов.