Перейти до основного вмісту
Модуль 5 · Урок 1 із 29/14 у курсі~12 min
Модульні уроки (1/2)

Блоки Try-Catch

У Java помилки виконання обробляються за допомогою Виняток. Обробка винятків дозволяє нам перехоплювати аномальні умови та запобігати збою програми.

Структура try-catch

Щоб обробити потенційний виняток, ми вкладаємо ризикований код у блок try. Якщо всередині блоку try виникає помилка, JVM припиняє її виконання та шукає відповідний блок catch для обробки винятку.

Java
try {
    int result = 10 / 0; // Generates ArithmeticException
    System.out.println("This will not be printed");
} catch (ArithmeticException e) {
    System.out.println("Arithmetic error occurred: " + e.getMessage());
}

Блок finally

Блок finally є необов’язковим і завжди виконується, незалежно від того, чи було створено виняток. Він ідеально підходить для вивільнення ресурсів або виконання операцій очищення.

Java
try {
    System.out.println("Executing logic");
} catch (Exception e) {
    System.out.println("Error");
} finally {
    System.out.println("This block is always executed");
}

Видалення винятків: throw

Ми можемо навмисно створити виняток, використовуючи ключове слово throw, за яким слідує новий екземпляр класу виключення.

Java
public static void checkScore(int score) {
    if (score < 0 || score > 100) {
        throw new IllegalArgumentException("Score must be between 0 and 100");
    }
}

Спробуйте самі

вправи#java.m5.l1.e1
Спроби: 0Завантаження…

Завершіть код, вставивши блок try-catch для обробки потенційного винятку ArithmeticException, який виникає в результаті ділення a / b. У разі помилки вивести «Помилка: ділення на нуль».

Завантаження редактора…
Показати підказку

Вставте операцію ділення всередину блоку `try` і перехопіть `ArithmeticException`, друкуючи необхідне повідомлення.

Рішення доступне після 3 спроб

вправи#java.m5.l1.e2
Спроби: 0Завантаження…

Завершіть код, щоб реалізувати блок try-catch-finally. У блоці try спробуйте перетворити рядок str на ціле число за допомогою Integer.parseInt. У блоці catch перехопіть виключення NumberFormatException і виведіть «Недійсне число». У блоці finally надрукуйте «Finally».

Завантаження редактора…
Показати підказку

Напишіть структуру блоку `try { ... } catch (NumberFormatException e) { ... } finally { ... }`.

Рішення доступне після 3 спроб

вправи#java.m5.l1.e3
Спроби: 0Завантаження…

Завершіть метод checkAge, створивши виняток IllegalArgumentException із повідомленням "Underage", якщо вказаний вік менше 18 років.

Завантаження редактора…
Показати підказку

Використовуйте ключові слова `if (age < 18)` і `throw new`, щоб створити екземпляр і викинути виняток.

Рішення доступне після 3 спроб