Лучший способ сделать это -
int i = 3;
Double d = i * 1.0;
d is 3.0 now.
Использование System.exit
осуждено, когда 'приложение' является действительно подприложением (например, сервлет, апплет) большего JAVA-приложения (сервер): в этом случае эти System.exit
мог остановить JVM и следовательно также все другие подприложения. В этой ситуации, выдавая соответствующее исключение, которое могло быть поймано и обработано средой разработки приложения / сервер, наилучший вариант.
, Если JAVA-приложение действительно предназначено, чтобы быть выполненным как автономное приложение, нет ничего неправильно с использованием System.exit
. в этом случае устанавливание значения выхода является, вероятно, самым легким (и также наиболее используется), способ передать отказ или успех к родительскому процессу.
Я соглашаюсь с" , выдают Исключение " толпа. Одна причина состоит в том, что вызов, который System.exit делает Ваш код трудным использовать, если Вы хотите, чтобы другой код смог использовать его. Например, если Вы узнаете, что Ваш класс был бы полезен из веб-приложения или некоторого сообщения, использующего приложение, то будет хорошо позволить тем контейнерам возможность иметь дело с отказом так или иначе. Контейнер может хотеть повторить операцию, решить зарегистрировать и проигнорировать проблему, послать электронное письмо администратору, и т.д.
, исключение к этому было бы Вашим main()
метод; это могло захватить Исключение и вызов System.exit()
с некоторым значением, которое может быть распознано обработкой вызовов или сценарием оболочки.
Это может быть опасно / проблематичный в веб-средах сервлета также.
Выдачу Исключения обычно считают другой альтернативой.
Политика нашей компании состоит в том, что (даже предпочтено) нормально называть System.exit (-1), но только в init () методы. Я определенно думал бы дважды прежде, чем назвать его во время нормального потока программы.
Выдавание исключения является лучшим способом отправить информацию об определенной ошибке и из приложения.
число А не говорит Вам так же как:
Exception at thread 'main': FileNotFoundException "The file 'foo' doesn't exist"
(или что-то близко к этому)
Я думаю, выдавая исключение, то, что необходимо сделать, когда что-то идет не так, как надо. Таким образом, если Ваше приложение не работает как автономное приложение вызывающая сторона, может реагировать на него и имеет некоторую информацию о том, что пошло не так, как надо. Это также легче для отладки целей, потому что Вы также получаете лучшее представление о том, что пошло не так, как надо, когда Вы видите отслеживание стека.
Одна важная вещь отметить состоит в том, что то, когда исключение достигает верхнего уровня и поэтому заставляет VM выходить из VM, возвращает код возврата 1, поэтому вне приложений, которые используют код возврата, видят, что что-то пошло не так, как надо.
единственный случай, где я думаю System.exit () имеет смысл, когда Ваше приложение предназначено, чтобы быть названным приложениями, которые не являются Java и поэтому должны использовать коды возврата, чтобы видеть, работало ли Ваше приложение или не, и Вы хотите, чтобы те приложения имели шанс реагировать по-другому на разных вещах, идущих не так, как надо, т.е. Вам нужны различные коды возврата.
Это осуждено для нормальный выходы. Если "не все идет согласно плану", затем System.exit прекрасен.
Обновление: Я должен добавить, что принимаю Ваш '1', имеет значение, которое документируется где-нибудь.