maggior parte del tempo, l'unica cosa che vedo un blocco finally utilizzato per è qualcosa di similePerché devo usare finalmente per chiudere le risorse?
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();
}
La mia domanda è, se la portata F termina con il blocco racchiude, perché abbiamo bisogno di chiudere nel finalmente ?
Nel tuo caso, l'ambito di 'f' non termina con il try-block –
@Oli Charlesworth: Questo è chiaramente un esempio leggibile. –
Creazione di un riferimento al file non genera eccezioni (o crea un handle di file), per riferimento futuro. –