Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
13 Май 2023
1 мин
1411

Перехват нескольких исключений в одном блоке catch в Java

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

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

Типичная проблема

Допустим, есть код, в котором возможно возникновение нескольких различных исключений. Например:

try {
    ...
} catch (ExceptionType1 e) {
    handleException(e);
} catch (ExceptionType2 e) {
    handleException(e);
} catch (ExceptionType3 e) {
    handleException(e);
}

В этом случае, если функция обработки исключений handleException одинаковая для всех типов исключений, то код в блоках catch дублируется. Это делает код менее читаемым и усложняет его поддержку.

Решение

В Java 7 и более новых версиях языка предусмотрена возможность перехватить несколько исключений одновременно в одном блоке catch. Для этого нужно перечислить типы исключений через вертикальную черту (|). Вот как выглядит пример кода с такой конструкцией:

try {
    ...
} catch (ExceptionType1 | ExceptionType2 | ExceptionType3 e) {
    handleException(e);
}

Теперь все исключения типов ExceptionType1, ExceptionType2 и ExceptionType3 будут перехвачены и обработаны в одном блоке catch, что делает код более чистым и легким для чтения.

Такой способ перехвата исключений называется множественным перехватом исключений или multi-catch. Это удобный способ обработки нескольких исключений, когда для всех из них применяется одна и та же логика обработки.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий