Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvPmExFi 356 of 420 menu
◀ ▶

Блок finally в Java

Иногда нужно выполнить код и при успехе, и при ошибке: вывести итог, сбросить флаг, напечатать разделитель. Для этого после catch добавляют блок finally. Он запускается всегда, когда завершилась пара try-catch:

try { // risky code } catch (RuntimeException e) { // handle } finally { // always runs }

Обратимся к несуществующему индексу списка и в finally выведем количество элементов:

import java.util.ArrayList; import java.util.Arrays; ArrayList<Integer> nums = new ArrayList<>(Arrays.asList(10, 20, 30)); try { System.out.println(nums.get(9)); } catch (IndexOutOfBoundsException e) { System.out.println("bad index"); } finally { System.out.println(nums.size()); }

Если исключения не было, catch пропускается, но finally все равно выполнится:

import java.util.ArrayList; import java.util.Arrays; ArrayList<Integer> nums = new ArrayList<>(Arrays.asList(4, 5, 6)); try { System.out.println(nums.get(0)); } catch (IndexOutOfBoundsException e) { System.out.println("bad index"); } finally { System.out.println("end"); }

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

Дан код:

int a = 12; int b = 0;

В try выведите a / b. При делении на ноль выведите "error" в catch. В finally выведите "finished".

Дан код:

String line = "42x";

В try выведите Integer.parseInt(line). При NumberFormatException выведите "nan". В finally выведите длину строки line.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить