TGViewer
Java tests Java tests @java_quizes · 2.42K subscribers
Post #227 2.03K
Java: Короткая задача

Задача:
Что выведет программа и почему?


public class Tricky {
public static void main(String[] args) {
System.out.println(getValue());
}

static int getValue() {
try {
return 1;
} finally {
return 2;
}
}
}


Разбор:

Блок finally всегда выполняется, даже если есть return в try.

Когда JVM встречает return 1;, она сохраняет значение для возврата.

Затем выполняет finally.

В finally есть новый return 2; — он перезаписывает сохранённый результат.

👉 Поэтому вернётся 2, а не 1.


Полезно знать:
Такое поведение часто ломает логику при работе с ресурсами - finally может изменить или "затереть" возвращаемое значение.
Лучше не использовать return внутри finally вообще.
  • 👍 19
  • 🤔 5
  • ❤ 4
More from @java_quizes
  1. Aug 22, 2026Post #254
  2. Aug 22, 2026photo post
  3. Aug 22, 2026Вам доклады по Go или Java? VK приглашает на митап с двойной начинкой 26 августа VK собира…
  4. Aug 17, 2026☕ Java-баг, который выглядит нормально, но ломает `HashMap` Что выведет этот код? Map<List…
  5. Jul 19, 2026Post #250
  6. Jul 19, 2026❓Что из вариантов лучше всего описывается определением: Операция, которая содержит серию з…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →