Часто при написании кода на 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. Это удобный способ обработки нескольких исключений, когда для всех из них применяется одна и та же логика обработки.
Добавить комментарий