Исключения в Java
НАВИГАЦИЯ ПО СТРАНИЦЕ
Исключения используются для обработки ошибок или неожиданных ситуаций в программе.
1. Блок try-catch :
public class ExceptionHandling {
public static void main(String[] args) {
try {
// Код, который может вызвать исключение
int result = divide(10, 0);
// Этот код не выполнится, если произойдет исключение
System.out.println("Результат деления: " + result);
} catch (ArithmeticException e) {
// Обработка исключения типа ArithmeticException
System.out.println("Деление на ноль недопустимо.");
} finally {
// Код в блоке finally выполняется всегда, независимо от того, произошло исключение или нет
System.out.println("Блок finally выполнен.");
}
}
// Метод, который делит два числа
public static int divide(int a, int b) {
return a / b;
}
}
2. Блок try-with-resources :
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class TryWithResourcesExample {
public static void main(String[] args) {
// Пример использования блока try-with-resources для автоматического закрытия ресурсов
try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) {
String line = reader.readLine();
System.out.println("Прочитанная строка: " + line);
} catch (IOException e) {
System.out.println("Ошибка при чтении файла: " + e.getMessage());
}
}
}
3. Создание собственных исключений:
public class CustomExceptionExample {
public static void main(String[] args) {
try {
// Вызов метода, который может бросить наше собственное исключение
validateAge(15);
} catch (InvalidAgeException e) {
// Обработка собственного исключения
System.out.println("Ошибка: " + e.getMessage());
}
}
// Метод, который может бросить наше собственное исключение
public static void validateAge(int age) throws InvalidAgeException {
if (age < 18) {
throw new InvalidAgeException("Возраст меньше 18 лет.");
} else {
System.out.println("Возраст подтвержден.");
}
}
}
// Наше собственное исключение
class InvalidAgeException extends Exception {
public InvalidAgeException(String message) {
super(message);
}
}
Описание кода:
Блок try-catch: Пример с классом ExceptionHandling демонстрирует использование блока try-catch для обработки исключений. В блоке try выполняется код, который может вызвать исключение, и если оно происходит, управление передается блоку catch, где исключение обрабатывается.
Блок try-with-resources: Пример с классом TryWithResourcesExample показывает использование блока try-with-resources для автоматического закрытия ресурсов, таких как файловые потоки. Это улучшает читаемость и безопасность кода.
Создание собственных исключений: Пример с классом CustomExceptionExample и собственным исключением InvalidAgeException демонстрирует, как создать и использовать собственные исключения. Метод validateAge выбрасывает наше собственное исключение, и оно обрабатывается в блоке catch.