Menu
Coddy logo textTech

Пользовательские исключения

Часть раздела Логика и управление потоком путешествия по 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

challenge icon

Задание

Легко

Создайте пользовательский класс исключения с именем EmailException и метод с именем validateEmail, который принимает один аргумент:

  1. Строку (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());
        }
    }
}
quiz iconПроверьте себя

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

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