Альтернативы System.exit (1)

Лучший способ сделать это -

int i = 3;
Double d = i * 1.0;

d is 3.0 now.
21
задан Priya 30 November 2014 в 10:27
поделиться

7 ответов

Использование System.exit осуждено, когда 'приложение' является действительно подприложением (например, сервлет, апплет) большего JAVA-приложения (сервер): в этом случае эти System.exit мог остановить JVM и следовательно также все другие подприложения. В этой ситуации, выдавая соответствующее исключение, которое могло быть поймано и обработано средой разработки приложения / сервер, наилучший вариант.

, Если JAVA-приложение действительно предназначено, чтобы быть выполненным как автономное приложение, нет ничего неправильно с использованием System.exit. в этом случае устанавливание значения выхода является, вероятно, самым легким (и также наиболее используется), способ передать отказ или успех к родительскому процессу.

28
ответ дан 29 November 2019 в 20:21
поделиться

Я соглашаюсь с" , выдают Исключение " толпа. Одна причина состоит в том, что вызов, который System.exit делает Ваш код трудным использовать, если Вы хотите, чтобы другой код смог использовать его. Например, если Вы узнаете, что Ваш класс был бы полезен из веб-приложения или некоторого сообщения, использующего приложение, то будет хорошо позволить тем контейнерам возможность иметь дело с отказом так или иначе. Контейнер может хотеть повторить операцию, решить зарегистрировать и проигнорировать проблему, послать электронное письмо администратору, и т.д.

, исключение к этому было бы Вашим main() метод; это могло захватить Исключение и вызов System.exit() с некоторым значением, которое может быть распознано обработкой вызовов или сценарием оболочки.

9
ответ дан 29 November 2019 в 20:21
поделиться

Это может быть опасно / проблематичный в веб-средах сервлета также.

Выдачу Исключения обычно считают другой альтернативой.

1
ответ дан 29 November 2019 в 20:21
поделиться

Политика нашей компании состоит в том, что (даже предпочтено) нормально называть System.exit (-1), но только в init () методы. Я определенно думал бы дважды прежде, чем назвать его во время нормального потока программы.

1
ответ дан 29 November 2019 в 20:21
поделиться

Выдавание исключения является лучшим способом отправить информацию об определенной ошибке и из приложения.

число А не говорит Вам так же как:

Exception at thread 'main': FileNotFoundException "The file 'foo' doesn't exist"

(или что-то близко к этому)

1
ответ дан 29 November 2019 в 20:21
поделиться

Я думаю, выдавая исключение, то, что необходимо сделать, когда что-то идет не так, как надо. Таким образом, если Ваше приложение не работает как автономное приложение вызывающая сторона, может реагировать на него и имеет некоторую информацию о том, что пошло не так, как надо. Это также легче для отладки целей, потому что Вы также получаете лучшее представление о том, что пошло не так, как надо, когда Вы видите отслеживание стека.

Одна важная вещь отметить состоит в том, что то, когда исключение достигает верхнего уровня и поэтому заставляет VM выходить из VM, возвращает код возврата 1, поэтому вне приложений, которые используют код возврата, видят, что что-то пошло не так, как надо.

единственный случай, где я думаю System.exit () имеет смысл, когда Ваше приложение предназначено, чтобы быть названным приложениями, которые не являются Java и поэтому должны использовать коды возврата, чтобы видеть, работало ли Ваше приложение или не, и Вы хотите, чтобы те приложения имели шанс реагировать по-другому на разных вещах, идущих не так, как надо, т.е. Вам нужны различные коды возврата.

1
ответ дан 29 November 2019 в 20:21
поделиться

Это осуждено для нормальный выходы. Если "не все идет согласно плану", затем System.exit прекрасен.

Обновление: Я должен добавить, что принимаю Ваш '1', имеет значение, которое документируется где-нибудь.

1
ответ дан 29 November 2019 в 20:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: