Ich habe dieses Konstrukt vor mir:
Streams soll man ja innerhalb eines finally schließen, vor allem weil hier auch mal Exceptions auftreten werden. Nun wirft aber close auch wieder eine Exception, was ein weiteres try erfordert.
Tritt bei zipin.close schon eine Exception auf, so wird filein schon nicht mehr geschlossen.
Noch ein paar mehr tries zu verschachteln halt ich für schwachsinnig.
Aber was dann ?!
Java:
Reader settingsStream = null;
FileInputStream filein = null;
ZipInputStream zipin = null;
try {
// Tue etwas für diese Frage uninteressantes
} catch (Exception ex) {
GameRoot.logError(ex);
} finally {
try {
if (filein != null) {
zipin.close();
filein.close();
}
settingsStream.close();
} catch (Exception ex) {
}
}
Tritt bei zipin.close schon eine Exception auf, so wird filein schon nicht mehr geschlossen.
Noch ein paar mehr tries zu verschachteln halt ich für schwachsinnig.
Aber was dann ?!