Перейти к основному содержимому
Модуль 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 для обработки потенциального арифметического исключения, возникающего в результате деления a/b. В случае ошибки выведите «Ошибка: деление на ноль».

Загрузка редактора…
Показать подсказку

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

Решение доступно после 3 попыток

Упражнение#java.m5.l1.e2
Попыток: 0Загрузка…

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

Загрузка редактора…
Показать подсказку

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

Решение доступно после 3 попыток

Упражнение#java.m5.l1.e3
Попыток: 0Загрузка…

Завершите метод checkAge, выдав исключение IllegalArgumentException с сообщением «Несовершеннолетний», если указанный возраст меньше 18 лет.

Загрузка редактора…
Показать подсказку

Используйте `if (возраст < 18)` и ключевые слова `throw new` для создания экземпляра и создания исключения.

Решение доступно после 3 попыток