Sobes.tech
Назад к вопросам
Senior
4

Как работали с ресурсами до появления try-with-resources?

Компании, где спрашивали
kode.ru

Ответ от нейросети

sobes.tech AI

До появления конструкции try-with-resources в Java (до Java 7) управление ресурсами (например, потоками, файлами, соединениями) осуществлялось вручную с помощью блока try-finally.

Ресурс открывался до блока try, а в блоке finally обязательно закрывался, чтобы избежать утечек ресурсов даже при возникновении исключений.

Пример:

BufferedReader reader = null;
try {
    reader = new BufferedReader(new FileReader("file.txt"));
    String line = reader.readLine();
    System.out.println(line);
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (reader != null) {
        try {
            reader.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

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