Зачем нужна Try Finally без Catch

«Зачем нужна Try Finally без Catch» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Try-Finally без Catch используется, когда нужно гарантировать выполнение кода освобождения ресурсов (закрытие файлов, соединений и т.д.), даже если исключение не обрабатывается в текущем методе.

Пример:

BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
try {
    String line = reader.readLine();
    // работаем с line, но исключения не ловим
} finally {
    reader.close(); // ресурс будет закрыт в любом случае
}

Ключевые моменты:

  1. Гарантирует выполнение cleanup-кода
  2. Позволяет исключению прокидываться выше по стеку вызовов
  3. Часто используется с ресурсами, требующими закрытия

В Java 7+ лучше использовать try-with-resources, который автоматически закрывает ресурсы.