try
und except
niemals eine Ausnahme auslösen. Sie behandeln einfach ausgelöste Ausnahmen.
Wenn update
löst bei einem Fehler eine Ausnahme aus, die except
behandelt die Ausnahme, dann wird die Schleife fortgesetzt (es sei denn, Sie verwenden raise
im except
Klausel).
Wenn update
löst bei einem Fehler keine Ausnahme aus, sondern gibt stattdessen None
zurück (oder so ähnlich), und Sie wollen Um eine Ausnahme auszulösen, können Sie Folgendes verwenden:
if coll.update(...) is None: # or whatever it returns on failure
raise ValueError # or your custom Exception subclass
Beachten Sie, dass Sie immer angeben sollten, welche Ausnahme Sie abfangen möchten, und nur die Codezeilen, in denen Sie sie abfangen möchten, mit try
umgeben , damit Sie keine anderen Fehler in Ihrem Code verbergen:
for record in coll.find(<some query here>):
#Code here
#...
#...
try:
coll.update({ '_id' : record['_id'] },record,safe=True)
except SpecificException:
#Handle exception here
except OtherSpecificException:
#Handle exception here
else:
#extra stuff to do if there was no exception
Siehe try
Aussage
, Integrierte Ausnahmen
, und Fehler und Ausnahmen
.