Top.Mail.Ru
Ответы

Зачем нуже блок finally в конструкции try catch JAVA?

если можно просто продолжить писать ниже код и он так же выполнится в любом случае

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект
5лет

>он так же выполнится в любом случае
Если будет исключение - не выполнится. Если будет досрочный выход из метода - тоже не выполнится. А в finally все выполнится при любых обстоятельствах.

Аватар пользователя
Мастер
5лет

блок файнали выполняется в любом случае: было словлено исключение или нет. Как пример - работа с файлом. Ты в любом случае должен закрыть поток работы с файлом, что бы там не случилось... поэтому
PrintWriter pw = null;
try{
pw = new PrintWriter(new File("..."));
//logic
} catch(Exception ignore){
}finally{
if(pw!=null) pw.close();
}