Пользовательские исключения
Часть раздела Логика и управление потоком путешествия по Java на Coddy — урок 43 из 59.
Вы можете создать свой собственный класс исключений, расширив класс Exception. Это полезно, когда вам нужно обрабатывать конкретные типы ошибок в вашем приложении.
Вот как создать пользовательское исключение:
public class AgeException extends Exception {
public AgeException(String message) {
super(message);
}
}А вот как его использовать:
if (age < 0) {
throw new AgeException("Invalid age: " + age);
}После выполнения приведённого выше кода с age = -5 программа выбрасывает:
AgeException: Invalid age: -5
Задание
ЛегкоСоздайте пользовательский класс исключения с именем EmailException и метод с именем validateEmail, который принимает один аргумент:
- Строку (
email) для валидации
Метод должен выбрасывать ваше пользовательское исключение с этими сообщениями:
- Если email равен null: "Email cannot be null"
- Если email пуст: "Email cannot be empty"
- Если email не содержит @: "Email must contain @"
- Если email не содержит никакого текста перед @: "Email must have a local part"
- Если валидация пройдена: вернуть "Valid email"
Шпаргалка
Создайте пользовательские исключения, расширяя класс Exception:
public class AgeException extends Exception {
public AgeException(String message) {
super(message);
}
}Выбрасывайте пользовательские исключения с помощью ключевого слова throw:
if (age < 0) {
throw new AgeException("Invalid age: " + age);
}Попробуйте сами
import java.util.Scanner;
class EmailException extends Exception {
public EmailException(String message) {
super(message);
}
}
public class Main {
public static String validateEmail(String email) throws EmailException {
// Напишите ваш код здесь
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String email = scanner.nextLine();
if (email.equals("null")) {
email = null;
}
try {
System.out.println(validateEmail(email));
} catch (EmailException 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Проект - Счетчик уникальных слов
Ввод и хранение текстаОбработка слов