Модульні уроки (1/2)
Блоки Try-Catch
У Java помилки виконання обробляються за допомогою Виняток. Обробка винятків дозволяє нам перехоплювати аномальні умови та запобігати збою програми.
Структура try-catch
Щоб обробити потенційний виняток, ми вкладаємо ризикований код у блок try. Якщо всередині блоку try виникає помилка, JVM припиняє її виконання та шукає відповідний блок catch для обробки винятку.
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 є необов’язковим і завжди виконується, незалежно від того, чи було створено виняток. Він ідеально підходить для вивільнення ресурсів або виконання операцій очищення.
try {
System.out.println("Executing logic");
} catch (Exception e) {
System.out.println("Error");
} finally {
System.out.println("This block is always executed");
}Видалення винятків: throw
Ми можемо навмисно створити виняток, використовуючи ключове слово throw, за яким слідує новий екземпляр класу виключення.
public static void checkScore(int score) {
if (score < 0 || score > 100) {
throw new IllegalArgumentException("Score must be between 0 and 100");
}
}Спробуйте самі
Завершіть код, вставивши блок try-catch для обробки потенційного винятку ArithmeticException, який виникає в результаті ділення a / b. У разі помилки вивести «Помилка: ділення на нуль».
Показати підказку
Вставте операцію ділення всередину блоку `try` і перехопіть `ArithmeticException`, друкуючи необхідне повідомлення.
Рішення доступне після 3 спроб
Завершіть код, щоб реалізувати блок try-catch-finally. У блоці try спробуйте перетворити рядок str на ціле число за допомогою Integer.parseInt. У блоці catch перехопіть виключення NumberFormatException і виведіть «Недійсне число». У блоці finally надрукуйте «Finally».
Показати підказку
Напишіть структуру блоку `try { ... } catch (NumberFormatException e) { ... } finally { ... }`.
Рішення доступне після 3 спроб
Завершіть метод checkAge, створивши виняток IllegalArgumentException із повідомленням "Underage", якщо вказаний вік менше 18 років.
Показати підказку
Використовуйте ключові слова `if (age < 18)` і `throw new`, щоб створити екземпляр і викинути виняток.
Рішення доступне після 3 спроб