Sind die elseund finallyAbschnitte der Ausnahmebehandlung redundant? Gibt es beispielsweise einen Unterschied zwischen den folgenden beiden Codefragmenten?
try:
foo = open("foo.txt")
except IOError:
print("error")
else:
print(foo.read())
finally:
print("finished")
und
try:
foo = open("foo.txt")
print(foo.read())
except IOError:
print("error")
print("finished")
Kann der Inhalt von im Allgemeinen nicht elseimmer in den tryund kann der Inhalt von nicht finallyeinfach außerhalb des try / catch-Blocks verschoben werden? Wenn ja, was ist der Zweck von elseund finally? Ist es nur um die Lesbarkeit zu verbessern?