Несколько блоков catch в одном и повторное выбрасывание исключений в Java 7

Несколько блоков catch в одном и повторное выбрасывание исключений в Java 7

В Java 7 был улучшен catch блок для работы с несколькими исключениями. Если в вашем коде нужно перехватывать несколько исключений в одном блоке try, то раньше вам приходилось писать много однотипного кода для разных исключений. Это загромождало ваш код и уменьшало его читабельность. 

Несколько блоков catch в одном. Java 7

Начиная с Java 7,  для того, чтобы поймать несколько исключений, можно использовать множественный catch блок, который не только снизит количество дублированного кода, но и улучшит его читабельность. Давайте рассмотрим множественный catch на примере:

До Java 7:

Начиная с Java 7, код выше можно переписать в вот такой удобный и читабельный блок:

Если catch блок обрабатывает несколько исключений, вы можете разделить их с помощью разделителя (|). В этом случае параметр (ex) является final, поэтому вы не можете его изменить. При использовании этого подхода, генерируется меньший байт-код и уменьшается избыточность кода.

Повторное выбрасывание исключений в Java 7

Еще одним улучшением Java 7 является улучшенный анализ повторного вызова исключений компилятором.

Давайте рассмотрим небольшой пример:

Компилятор Java 7 проанализирует метод rethrow(String s), проверяет, какие типы исключений брошены, а затем повторно выбрасывает исключение из блока catch.

Обратите внимание, что этот анализ будет отключен, если изменить аргумент блока catch.

Дополнительное чтение: Полное руководство по обработке исключений в Java.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *