Уроки модуля (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 для обработки потенциального арифметического исключения, возникающего в результате деления a/b. В случае ошибки выведите «Ошибка: деление на ноль».
Показать подсказку
Вставьте операцию деления в блок try и перехватите ArithmeticException, выведя необходимое сообщение.
Решение доступно после 3 попыток
Завершите код, чтобы реализовать блок try-catch-finally. В блоке try попробуйте преобразовать строку str в целое число с помощью Integer.parseInt. В блоке catch перехватите NumberFormatException и напечатайте «Неверный номер». В последнем блоке напечатайте «Наконец».
Показать подсказку
Напишите структуру блока `try { ... } catch (NumberFormatException e) { ... }finally { ... }`.
Решение доступно после 3 попыток
Завершите метод checkAge, выдав исключение IllegalArgumentException с сообщением «Несовершеннолетний», если указанный возраст меньше 18 лет.
Показать подсказку
Используйте `if (возраст < 18)` и ключевые слова `throw new` для создания экземпляра и создания исключения.
Решение доступно после 3 попыток