Code: Alles auswählen
try:
fobj = open(fname)
except OSError, e:
print "Oh Oh, going down"
else:
do_foo()
finally:
fobj.close()
@Zap: Weil dir ein `j` fehlt Um das sauber zu schliessen, muesste es existieren, bei dir tritt das Problem nicht auf, weil dir das gleich beim oeffnen um die Ohren fliegt, wenn es ein Problem gibt.
Dass es bei `with` und `try ... finally` genauso scheitert, ist richtig, dass du das aber in Code aenderst, der dir sowieso um die Ohren fliegt, wenn was falsch laeuft macht ihn nicht richtiger, nur weil du das Problem verlagerst.