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