Урок 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
, и сообщение выводится на экран.