Урок 17: Пользовательские исключения
В этом уроке мы рассмотрим, как создавать и использовать пользовательские исключения в Java, которые позволяют более точно описывать ошибки, возникающие в программе.
Создание пользовательских исключений
Пользовательские исключения создаются путем наследования от класса Exception. Пример:
class CustomException extends Exception {
 public CustomException(String message) {
 super(message);
 }
}
public class CustomExceptionExample {
 public static void main(String[] args) {
 try {
 throw new CustomException("Это пользовательское исключение");
 } catch (CustomException e) {
 System.out.println(e.getMessage());
 }
 }
}
 
Результат выполнения
Это пользовательское исключение
 
Использование пользовательских исключений
Создание и использование пользовательских исключений позволяет более точно контролировать ошибки. Пример:
class NegativeNumberException extends Exception {
 public NegativeNumberException(String message) {
 super(message);
 }
}
public class NegativeNumberCheck {
 public static void main(String[] args) {
 int number = -5;
 try {
 if (number < 0) {
 throw new NegativeNumberException("Число не должно быть отрицательным!");
 }
 } catch (NegativeNumberException e) {
 System.out.println(e.getMessage());
 }
 }
}
 
Результат выполнения
Число не должно быть отрицательным!
 
Упражнения
Упражнение 1: Проверка возраста
Напишите программу, которая проверяет возраст пользователя. Если возраст меньше 18, выбросите пользовательское исключение AgeException.
Решение:
class AgeException extends Exception {
 public AgeException(String message) {
 super(message);
 }
}
public class AgeCheck {
 public static void main(String[] args) {
 int age = 16;
 try {
 if (age < 18) {
 throw new AgeException("Возраст должен быть 18 или старше.");
 }
 System.out.println("Возраст принят.");
 } catch (AgeException e) {
 System.out.println(e.getMessage());
 }
 }
}
 
Объяснение: Программа проверяет возраст пользователя и выбрасывает исключение AgeException, если возраст меньше 18. Исключение обрабатывается в блоке catch, и сообщение выводится на экран.
 
Упражнение 2: Проверка баланса на счету
Напишите программу, которая проверяет баланс на счету пользователя. Если баланс меньше нуля, выбросите пользовательское исключение BalanceException.
Решение:
class BalanceException extends Exception {
 public BalanceException(String message) {
 super(message);
 }
}
public class BalanceCheck {
 public static void main(String[] args) {
 double balance = -100.0;
 try {
 if (balance < 0) {
 throw new BalanceException("Баланс не должен быть отрицательным.");
 }
 System.out.println("Баланс принят.");
 } catch (BalanceException e) {
 System.out.println(e.getMessage());
 }
 }
}
 
Объяснение: Программа проверяет баланс пользователя и выбрасывает исключение BalanceException, если баланс отрицательный. Исключение обрабатывается в блоке catch, и сообщение выводится на экран.