В Java существуют следующие формы записи блоков try/catch/finally:
Базовая форма try-catch:
Обрабатывает исключения, возникающие в блоке try.
java
Множественные блоки catch:
Позволяет обрабатывать различные типы исключений по-разному. Блоки catch выполняются сверху вниз, и будет обработан тот, тип исключения которого совпадает или является родительским для выброшенного исключения, и который указан первым.
java
Мульти-сatch (Java 7+):
Позволяет обрабатывать несколько типов исключений в одном блоке catch, если логика обработки для них одинакова. Типы исключений разделяются символом |.
java
Блок finally:
Используется для выполнения кода, который должен быть выполнен независимо от того, возникло исключение или нет (например, закрытие ресурсов). Блок finally выполняется после блока try и всех соответствующих блоков catch.
java
Возможно также сочетание try-finally без блока catch, если исключение не обрабатывается локально, но требуется выполнить завершающий код.
java
Try-with-resources (Java 7+):
Автоматически закрывает ресурсы, которые реализуют интерфейсы AutoCloseable или Closeable. Ресурсы объявляются в скобках после ключевого слова try.
java
Эта форма может использоваться с блоками catch и/или finally.
java