Выброс исключения (throw)

Тренажер по Java для пользователей с начальным уровнем подготовки.

Тренажер по Java

throw в Java используется, чтобы явно выбросить исключение: прервать обычный ход выполнения и передать управление обработчику catch или выше по стеку. Это полезно для проверки входных данных и сигнализации об ошибках в бизнес-логике. Синтаксис: throw new ExceptionType("message");. Можно выбрасывать как стандартные исключения (например, IllegalArgumentException), так и свои. В задачах java онлайн вы потренируетесь читать код, понимать где и почему возникает исключение, и как это влияет на результат.

Пример:

if (age < 0) { throw new IllegalArgumentException("age"); }

Список тем

1. Выбери подходящий тип исключения

id: 40501_th_02_select_fill_exception_type

В данном фрагменте кода реализован метод, который проверяет входные аргументы и выбрасывает исключения при нарушении условий. Вам необходимо выбрать подходящие типы исключений из предложенного списка для каждого пропуска, чтобы код соответствовал стандартным практикам обработки ошибок в Java. Обратите внимание на условия проверок: аргумент не должен быть null и должен быть положительным числом.

Нужно правильно расставить в пропуски предложенные варианты
public class Validator {
    public void validate(String name, int age) {
        if (name == null) {
            throw new input1S("Name cannot be null");
        }
        if (age < 0) {
            throw new input2S("Age cannot be negative");
        }
        // Дополнительная логика
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Исправь ошибку, связанную с throw

id: 40501_th_04_error_unreachable_after_throw

В данном фрагменте кода на Java допущена одна ошибка, связанная с оператором throw. Код пытается выбросить исключение при некорректном значении, но из-за синтаксической ошибки программа не скомпилируется. Найдите и исправьте строку с ошибкой, чтобы исключение корректно создавалось и выбрасывалось.

Найдите ошибку и исправьте
public class AgeValidator {
    public static void validateAge(int age) {
        if (age < 0) {
            throw IllegalArgumentException("Возраст не может быть отрицательным");
        }
        System.out.println("Возраст корректен: " + age);
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

3. Собери метод валидации с throw

id: 40501_th_05_build_from_parts_validate_method

Из предложенных строк соберите корректный метод валидации на Java, который проверяет, что переданный возраст является положительным числом. Если возраст меньше или равен нулю, метод должен выбросить исключение IllegalArgumentException с соответствующим сообщением. Метод не должен ничего возвращать при успешной проверке. Одна из строк лишняя и в решение входить не должна.

Перетяните в правильном порядке строки из одного блока в другой
public static void validateAge(int age) {
    if (age <= 0) {
        throw new IllegalArgumentException("Возраст должен быть положительным числом.");
    }
}
        System.out.println(age);
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

4. Разложи исключения по категориям

id: 40501_th_06_sort_checked_vs_runtime

Перед вами список классов исключений в Java. Распределите их по двум категориям: checked исключения (наследники Exception, но не RuntimeException) и unchecked исключения (наследники RuntimeException). Каждый элемент должен оказаться строго в одной из категорий. Обратите внимание, что checked исключения проверяются на этапе компиляции и требуют обязательной обработки, в то время как unchecked исключения возникают во время выполнения программы.

Перетяните элементы в соответствующие блоки
Checked (Exception, но не RuntimeException)
Unchecked (RuntimeException)
IOException
SQLException
ClassNotFoundException
ParseException
FileNotFoundException
NullPointerException
ArrayIndexOutOfBoundsException
IllegalArgumentException
ArithmeticException
NumberFormatException
Сообщения
Проверить
Показать подсказку

5. Какое сообщение попадёт в исключение

id: 40501_th_07_give_result_message

Рассмотрите фрагмент кода на Java, в котором создаётся и выбрасывается исключение с определённым сообщением, а затем это исключение перехватывается и выводится его сообщение. Определите, какое именно сообщение будет выведено на экран. Введите одну короткую строку (без кавычек).

Что должно получиться?
public class Main {
    public static void main(String[] args) {
        try {
            throw new IllegalArgumentException("Неверный аргумент: значение не может быть отрицательным");
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        }
    }
}
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру