Einen hät' ich noch für heute - dann ist aber auch gut
Es folgt mein Versuch, eine Fehlerabfrage bei einer Open-Anweisung ein zu bauen:
Code: Alles auswählen
try:
# Datei zum Lesen oeffnen und am Ende schliessen
usbfh = open(usbpath, "r")
except IOError:
print("Datei nicht lesbar!")
else:
# Datei einlesen, wenn kein Fehler augetreten ist:
for line in usbfh:
print(line.rstrip())
finally:
# Diese Anweisung in jedem Fall ausführen:
usbfh.close()
Jetzt habe ich die zu öffnende Datei für Test-Zwecke umbenannt, um einemn Fehler zu erzeugen - Das klappt auch!
Zeile 6 wird auch noch ausgeführt und der Fehler im Terminal ausgegeben - Das klappt ebenso!
Warum wird jetzt Zeile 9 (else) ausgeführt, obwohl except einen Fehler meldete?
Kann ich in Zeile 7 das Programm enden lassen, oder irgendwie in Zeile 14 springen? (goto geht ja leider nicht)
Und sollte finally nicht in jedem Fall ausgeführt werden?
Gruß jts
Nachtrag:
Habe das vergessen :
Code: Alles auswählen
except FileNotFoundError:
print("Datei nicht gefunden!")