Ergänzend zu den anderen oben genannten Antworten sei gesagt, dass die finally
Klausel wird auf jeden Fall ausgeführt, während die else
Klausel wird nur ausgeführt, wenn keine Ausnahme ausgelöst wurde.
Wenn Sie beispielsweise in eine Datei ohne Ausnahmen schreiben, wird Folgendes ausgegeben:
file = open('test.txt', 'w')
try:
file.write("Testing.")
print("Writing to file.")
except IOError:
print("Could not write to file.")
else:
print("Write successful.")
finally:
file.close()
print("File closed.")
OUTPUT:
Writing to file.
Write successful.
File closed.
Wenn eine Ausnahme auftritt, gibt der Code Folgendes aus (beachten Sie, dass ein absichtlicher Fehler dadurch verursacht wird, dass die Datei schreibgeschützt ist).
file = open('test.txt', 'r')
try:
file.write("Testing.")
print("Writing to file.")
except IOError:
print("Could not write to file.")
else:
print("Write successful.")
finally:
file.close()
print("File closed.")
OUTPUT:
Could not write to file.
File closed.
Wir können sehen, dass die finally
Klausel wird unabhängig von einer Ausnahme ausgeführt. Ich hoffe, das hilft.