Прерывание выполнения метода [требует правки]

270
04 марта 2017, 03:14

Как прервать выполнение метода?

Answer 1

Если метод ничего не возвращает (void), то можно выполнить оператор return, который завершит работу метода (или, проще, выйдет из него). Пример использования

public void foo(int n) {
if(n < 0) return;
else bar(n);
}

В этом случае перед вызовом метода bar идет проверка на отрицательное число n.

Как по мне оператор return в void методах в 80% случае можно заменить на какую-то логику, например метод выше можно переписать вот так

public void foo(int n) {
if(n >= 0) bar(n);
}

Если метод что-то возвращает, то оператор return используется всегда (так как он возвращает) а иногда и более одного раза (в методах с разветвляющейся логикой)

public String foo(int n) {
if(n == 1) return "ONE";
if(n == 2) return "TWO";
return "WTF!?";
}

@Regent в комментариях меня поправил. Раз уж оператор return вернет значение и закончит выполнение метода, то лесенка if/else не нужна

Answer 2
  1. С помощью оператора return. return; для void-методов и return value; для других методов.
  2. Пробросить исключение: throw new Exception();. В этом случае у метода должно быть указано throws Exception. На практике пробрасывается конкретное исключение (например, IndexOutOfBoundsException), зачастую с текстом ошибки.

Далее идут нестандартные способы, которые на практике используются крайне редко, однако они всё же останавливают выполнение метода:

  1. System.exit(status);, он же Runtime.getRuntime().exit(status);. Останавливает работу программы.
  2. Deprecated-метод stop у Thread: Thread.currentThread().stop();. Про то, почему он deprecated, прочитать можно здесь.
READ ALSO
LibGDX вращение объекта за курсором мыши

LibGDX вращение объекта за курсором мыши

Не нашел нужного метода по реализации вращения объекта за курсором мышиПытался сам реализовать это, но в связи с неопытностью, этого сделать...

313
Проблема с TextView

Проблема с TextView

Моя программа считывает данные из файла и отображает их в TextViewМне нужно определить количество виртуальных страниц, на которые разбивается...

343
работа с JDBC и запросы к БД

работа с JDBC и запросы к БД

Необходима помощь вот каком вопросеНаписал запросы к БД, на что было получено замечание, что "использование ps неэффективно"

295