В Java try-with-resources - это новый способ работы с ресурсами, введенный в версии JDK 7. Он автоматически закрывает используемые ресурсы после того, как выполнение блока try завершится. Таким образом, вы можете избежать вручную закрытия ресурсов в блоке finally.
Пример с try-with-resources:
try (InputStream in = new FileInputStream("file.txt")) {
// считывание данных из потока } catch (IOException e) {
// обработка ошибок ввода/вывода } // здесь in будет автоматически закрыт
В то время как в блоке try-catch-finally, блок finally выполняется после того, как выполнение блока try завершилось, но перед тем, как управление передается дальше по стеку вызовов. Это означает, что блок finally может использоваться для закрытия ресурсов, открытых в блоке try.
Пример с try-catch-finally:
InputStream in = null;
try {
in = new FileInputStream("file.txt");
// считывание данных из потока } catch (IOException e) {
// обработка ошибок ввода/вывода } finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
// обработка ошибок ввода/вывода }
}
}
Таким образом, try-with-resources упрощает и уменьшает количество кода при работе с ресурсами и обеспечивает безопасное закрытие использованных ресурсов, в то время как try-catch-finally позволяет закрыть ресурсы, если они были открыты в блоке try и выполнен блок catch, и выполняется в любом случае.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov