Ich habe eine Schleife, aber es gibt die Möglichkeit für Ausnahmen innerhalb der Schleife ausgelöst werden. Dies würde natürlich mein Programm alle zusammen stoppen. Um das zu verhindern, fange ich die Ausnahmen ab und behandle sie. Aber dann läuft der Rest der Iteration, obwohl eine Ausnahme aufgetreten ist. Gibt es in meiner except:
-Klausel ein Schlüsselwort, um den Rest der aktuellen Iteration einfach zu überspringen?Überspringe Iterationen in Python
Antwort
Sie suchen nach continue.
Das muss eine der prägnantesten SO Antworten sein, die ich je gesehen habe! –
Die eigentliche Frage: Gibt es das 'g' in 'Pythonic'? –
So ähnlich?
for i in xrange(someBigNumber):
try:
doSomethingThatMightFail()
except SomeException, e:
continue
doSomethingWhenNothingFailed()
Bearbeitet, um fortzufahren statt zu übergeben. –
Ich glaube, Sie suchen continue
for i in iterator:
try:
# Do something.
pass
except:
# Continue to next iteration.
continue
Für diesen speziellen Anwendungsfall mit try..except..else
ist die sauberste Lösung, die else
Klausel wird ausgeführt, wenn keine Ausnahme ausgelöst wurde.
HINWEIS: Die else
Klausel muss alle except
Klauseln
for i in iterator:
try:
# Do something.
except:
# Handle exception
else:
# Continue doing something
Folgen Sie nicht sehen, wie die akzeptierte Antwort (Verwendung 'CONTINUE) Ausnahmen abfängt, aber es wurde angenommen. Daher ist die Frage wirklich, wirklich verwirrend. –
@ S.Lott Ich brauche das Schlüsselwort nicht, um die Ausnahme zu fangen, ich habe nur über den allgemeinen Ablauf des Gesamtcodes gesprochen. –
@ The.Anti.9. Was? Zuerst hast du gesagt "Ich möchte die Ausnahmen abfangen". Jetzt sagst du "Ich brauche das Schlüsselwort nicht, um die Ausnahme zu fangen". Könnten Sie das irgendwie klären? –