Исключения в Java

НАВИГАЦИЯ ПО СТРАНИЦЕ

Блок try-catch Блок try-with-resources

Исключения используются для обработки ошибок или неожиданных ситуаций в программе.

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.