Menu
Coddy logo textTech

Бросание исключений

Часть раздела Логика и управление потоком путешествия по Java на Coddy — урок 42 из 59.

Ключевое слово throw в Java позволяет явно выбросить исключение. Вот базовая структура:

throw new ExceptionType("Error message");

Компоненты:

  • throw: Ключевое слово для выброса исключения
  • new ExceptionType: Создает новое исключение (например, IllegalArgumentException)
  • "Error message": Описывает, что пошло не так

Давайте посмотрим в действии:

int age = -5;
if (age < 0) {
    throw new IllegalArgumentException("Age cannot be negative");
}

После выполнения приведенного выше кода программа выбрасывает:

IllegalArgumentException: Age cannot be negative

challenge icon

Задание

Легко

Создайте метод с именем validateAge, который принимает два аргумента:

  1. Целое число (age) для проверки
  2. Логическое значение (strict), определяющее правила проверки

Метод должен выбрасывать исключения на основе этих правил:

  • Если age отрицательное: выбросить IllegalArgumentException с сообщением "Age cannot be negative"
  • Если age больше 150: выбросить IllegalArgumentException с сообщением "Age cannot be greater than 150"
  • Если strict равно true и age равно 0: выбросить IllegalArgumentException с сообщением "Age cannot be zero in strict mode"
  • Если исключение не выброшено: вернуть age в виде строки

Шпаргалка

Ключевое слово throw позволяет вам явно выбросить исключение:

throw new ExceptionType("Error message");

Компоненты:

  • throw: Ключевое слово для выброса исключения
  • new ExceptionType: Создает новое исключение (например, IllegalArgumentException)
  • "Error message": Описывает, что пошло не так

Пример:

int age = -5;
if (age < 0) {
    throw new IllegalArgumentException("Age cannot be negative");
}

Попробуйте сами

import java.util.Scanner;

public class Main {
    public static String validateAge(int age, boolean strict) {
        // Напишите свой код здесь
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int age = Integer.parseInt(scanner.nextLine());
        boolean strict = Boolean.parseBoolean(scanner.nextLine());
        
        try {
            System.out.println(validateAge(age, strict));
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        }
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком