Sobes.tech
Junior — Middle

Va avea efect utilizarea lui close în interiorul unui bloc try?

sobes.tech AI

Răspuns de la AI

Если вызвать метод close() внутри блока try, то он будет выполнен, но если в блоке try произойдет исключение до вызова close(), то этот вызов может быть пропущен. Поэтому для корректного освобождения ресурсов лучше использовать конструкцию try-with-resources или вызывать close() в блоке finally.

Пример с try-with-resources:

try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
    // работа с br
} // br.close() вызовется автоматически

Если же вы вызываете close() внутри обычного try, то при исключении до вызова close() ресурс не будет закрыт, что может привести к утечкам ресурсов.