eine Sache habe ich an Exception-Handling irgendwie nicht ganz verstanden.
Hier mal ein minimal-Beispiel:
Code: Alles auswählen
while True:
try:
print input(': ')
except KeyboardInterrupt:
print 'quit!'
quit()
except: pass
Wenn ich dieses Programm ausführe wird beim drücken von str+c (KeyboardInterrupt) das Programm, wie geplant, abgebrochen und "quit!" auf dem Bildschirm ausdrücke.
Alle anderen Fehler führen zu nichts.
Aber:
Wenn ich einen EOFError auslöse (str+d drücken), dann passiert zwar erst auch "nichts", aber danach "funktioniert" das abfangen von KeyboardInterrupt nicht mehr.
Das Programm bricht mit einer Python-Fehlermeldung ab.
Kann mir jemand erklären warum das so ist?
Schöne Grüße,
Jannik
Edit:
ich verwende Python version 2.5.2 unter Linux