Бросание исключений
Часть раздела Логика и управление потоком путешествия по 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
Задание
ЛегкоСоздайте метод с именем validateAge, который принимает два аргумента:
- Целое число (
age) для проверки - Логическое значение (
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());
}
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиПовторение - 2D-массивыСложение и вычитание матрицРваные массивы3D-массивы и вышеРаспространённые паттерны 2D-массивовПовторение - всё о массивах2HashMap Часть 1
Что такое HashMap?Объявление HashMapДоступ к значениямПроверка существования ключаИзменение словарейИтоги - HashMap3HashMap. Часть 2
Методы HashMapИтерация с keySet()Итерация с entrySet()Вложенный HashMapПовторение - Управление складомПовторение - Операции HashMap6Продвинутое управление потоком
Операторы метокВыражение switchСопоставление шаблоновОхранные клаузыИтоги - управление потоком9Проект - Счетчик уникальных слов
Ввод и хранение текстаОбработка слов