В большинстве случаев я вижу, что блок finally используется только для чего-то вроде
FileInputStream f;
try{
f= new FileInputStream("sample.txt");
//something that uses f and sometimes throws an exception
}
catch(IOException ex){
/* Handle it somehow */
}
finally{
f.close();
}
Мой вопрос: если область видимости f заканчивается охватывающим блоком, зачем нам закрывать его в файле finally?