Как прервать выполнение программы java

Знаю, что можно использовать System.exit(0), но против такого прерывания, это не совсем корректно. Один путь передаю с помощью аргумента, второй вбиваю. Хотелось бы узнать как прервать программу, если одного из путей нет. Был ещё такой вариант:

if (path == null) return;

Но хотелось бы узнать какой вариант был бы более оптимален в моём случае. Потому что ветвления if/else не совсем люблю. Желательно, чтобы это обрабатывалось в catch.

Ответы (3 шт):

Не нужно изобретать велосипед («украдите его»).

Посмотрите любой приличный фреймворк на Application.Run, . в Application.Run у вас будет отлов исключения try catch и выход из основного приложения. Иначе говоря если исключение пробросилось catch(e) < throw e>до Application.Run то вывод/логирование/. и выход из Application.Run.

Можно просто нигде не ловить исключения. Всё будет работать, но вывод в консоль будет не красивый.

Можно вместо println бросать дальше свои исключения:

> catch (FileNotFoundException e) < throw new MyPrettyException(«Файл не был найден, проверьте путь»);

А в самом конце main -a ловить:

22 Цикл while. Инструкции break, continue, else


> catch (MyPrettyException e)

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

Мне дал этот ответ Stranger in the Q, привожу вариант, который использую. Здесь мы пробрасываем исключения из метода read в главный метод main и там обрабатываем.

try < read(path, departments); transferToDepartment(departments, DownloadFile); >catch (Exception e) < System.out.println(e.getMessage()); >public static void read(String path, Map departments) throws IOException < assert path != null; try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path), «CP1251»)); br) < . >System.out.println(«Читаемый файл закрыт»); > catch (FileNotFoundException e) < throw new RuntimeException(«Файл не был найден, проверьте путь»); >catch (ArrayIndexOutOfBoundsException e) < throw new RuntimeException(«Исправьте путь к файлу, выходите за массив»); >catch (NullPointerException e) < throw new RuntimeException(«Вы забыли прописать путь к файлу»); >>

Читайте также:
Программа logitech не видит наушники

Источник: husl.ru

Как выйти из приложения Java из программы

Какой лучший способ выйти из приложения Java с кодом?

ОТВЕТЫ

Ответ 1

Вы можете использовать System.exit() для этой цели.

Согласно документации oracle Java 8:

public static void exit(int status)

Завершает работу запущенной виртуальной машины Java. Аргумент служит в качестве кода состояния; по соглашению, ненулевой код состояния указывает на ненормальное завершение.

Этот метод вызывает метод exit в классе Runtime. Этот метод никогда не возвращается нормально.

Вызов System.exit(n) фактически эквивалентен вызову:

Runtime.getRuntime().exit(n)

Как выполнить программу Java без метода Main

Ответ 2

System.exit(0);

«0» позволяет любому, кто вызвал вашу программу, знать, что все прошло нормально. Если, однако, вы выходите из-за ошибки, вы должны System.exit(1); или с другим ненулевым числом, соответствующим конкретной ошибке.

Кроме того, как говорили другие, сначала очистите! Это включает в себя закрытие файлов и других открытых ресурсов.

Ответ 3

System.exit(int i) , но я бы включил его в более общий метод shutdown() , где вы также включили бы шаги «очистки», закрыв соединения сокетов, дескрипторы файлов, а затем выйдя с помощью System.exit(x) .

Ответ 4

System.exit() обычно не самый лучший способ, но он зависит от вашего приложения.

Обычный способ завершения приложения — выйти из метода main() . Это не работает, когда выполняются другие потоки не-deamon, как это обычно бывает для приложений с графическим интерфейсом пользователя (AWT, Swing и т.д.). Для этих приложений вы либо найдете способ закончить цикл событий GUI (не знаете, возможно ли это с помощью AWT или Swing), либо вызвать System.exit() .

Ответ 5

Я согласен с Джоном, попросите ваше приложение отреагировать на что-то и вызовите System.exit().

  • вы используете соответствующее значение выхода. 0 — нормальный выход, все остальное указывает на наличие ошибки
  • вы закрываете все входные и выходные потоки. Файлы, сетевые подключения и т.д.
  • вы регистрируете или печатаете причину выхода, особенно если ее из-за ошибки
Читайте также:
Бетсити партнерская программа как подключить

Ответ 6

Использование dispose(); — очень эффективный способ закрытия ваших программ.

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

Ответ 7

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

Ответ 8

Есть два простых ответа на вопрос.

Это «Профессиональный путь»:

//This just terminates the program. System.exit(0);

Это более неуклюже:

//This just terminates the program, just like System.exit(0). return;

Ответ 9

Runtime.getCurrentRumtime().halt(0);

Ответ 10

System.exit(ПРЕРЫВАНИЕ); Выйдите из процесса немедленно.

Ответ 11

Это должно быть сделано правильно:

Ответ 12

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

Источник: utyatnishna.ru

Операторы прерывания continue, break, return, System.exit

В этом случае если условие истинно (т. е. равно true), то выполняется оператор1, а если условие ложно (т. е. равно false), то выполняется оператор2. Когда не требуется выполнять каких либо действий если условие ложно, тогда оператор2 вместе с ключевымсловом else можно не указывать.

2. Составной оператор Часто встречаются ситуации, когда операторов должно быть несколько. В таких случаях используется конструкция, называемая составным оператором.Блок кода между двумя фигурными скобками < и >, который может содержать внутри себя произвольный набор команд называется составным оператором. if (условие)

3. Операторы инкремента и декремента ++ и — Оператор ++ называют инкрементным или увеличивающим, а оператор — — декрементным или уменьшающим. У этих операторов существуют две формы записи: постфиксная и префиксная.

4. Оператор цикла for В общем случае цикл for записывается следующим образом: for (инициализация; условие выполнения; изменение счетчика)оператор;for (i = 1; i

Читайте также:
Андроид как открыть видео в другой программе

5. Оператор цикла while (цикл с предусловием) выглядит следующим образом:

While (условие)оператор;

6. Операторы цикла do … while (цикл с постусловием)

do while (условие);

Операторы прерывания continue, break, return, System.exit

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

continue – завершение выполнения тела текущего цикла и переход к выполнению следующей его итерации (проверке условия).

continue имя_метки – завершение выполнения тела цикла помеченного меткой и переход к выполнению следующей его итерации (проверке условия).

break – завершение выполнения текущего цикла.

break имя_метки – завершение выполнения цикла помеченного меткой

return значение – «прерывание» не является основной функцией оператора его основным назначением является указание значения, которое вернет функция после завершения своей работы. Однако, если он стоит не последним в коде функции, то он действительно прерывает её выполнение

System.exit(значение) – прерывает выполнение Java программы и возвращает указанное значение операционной системе.

Существует два варианта операторов continue и break с меткой и без. Вариант безметки предназначен для прерывания текущего (самого внутреннего по вложенности цикла), а вариант с меткой — для прерывания цикла отмеченного меткой.

8. Оператор выбора switch В общем случае оператор switch записывается следующим образом:

Оператор выбора switch позволяет в некоторых случаях заменить ряд идущих подряд опера-торов if на один оператор.

9. Условное выражение …? …: … Условное выражение представляет из себя следующую конструкцию: условие?значение1:значение2

Значение условного выражения оказывается равным значению1, если условие истинно и значению2 в противном случае.

Дата добавления: 2015-10-13 ; просмотров: 147 | Нарушение авторских прав

Читайте в этой же книге: Обработка исключений и ошибок. | Package chapt06; | Система Eclipse как платформа для построения RCP приложений. | Классы-оболочки | Протокол HTTP. | Web-server на примере Apache Tomcat. | Компоненты J2EE | Сервлеты. |

| следующая страница ==>
имени С. Г. СТРОГАНОВА | Управление доступом.

mybiblioteka.su — 2015-2023 год. (0.01 сек.)

Источник: mybiblioteka.su

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru