L'une des choses qui toujours me dérange à propos de l'utilisation des Lecteurs et des Flux en Java, c'est que l' close()
méthode peut lever une exception. Depuis c'est une bonne idée de mettre la méthode close dans un bloc finally, qui nécessite un peu d'une situation délicate. J'ai l'habitude d'utiliser cette construction:
FileReader fr = new FileReader("SomeFile.txt");
try {
try {
fr.read();
} finally {
fr.close();
}
} catch(Exception e) {
// Do exception handling
}
Mais j'ai aussi vu cette construction:
FileReader fr = new FileReader("SomeFile.txt");
try {
fr.read()
} catch (Exception e) {
// Do exception handling
} finally {
try {
fr.close();
} catch (Exception e) {
// Do exception handling
}
}
Je préfère la première construction, car il n'y a qu'un seul bloc catch et il me semble plus élégant. Est-il une raison pour lui préfère la deuxième ou une autre construction?
Mise à JOUR: y Aurait-il une différence si je l'ai fait remarquer que les deux read
et close
seulement jeter IOExceptions? Il semble donc probable pour moi que, si la lecture échoue, près échouera pour la même raison.