try og except aldrig få en undtagelse til at blive kastet. De håndterer simpelthen smidte undtagelser.
Hvis update kaster en undtagelse ved fejl, except vil håndtere undtagelsen, så fortsætter løkken (medmindre du bruger raise i except klausul).
Hvis update kaster ikke en undtagelse ved fejl, men returnerer i stedet None (eller sådan noget), og du vil det for at kaste en undtagelse, kan du bruge:
if coll.update(...) is None: # or whatever it returns on failure
raise ValueError # or your custom Exception subclass
Bemærk, at du altid skal angive, hvilken undtagelse du vil fange, og kun omgive de kodelinjer, hvor du vil fange den med try , så du ikke skjuler andre fejl i din kode:
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
Se try Erklæring
, Indbyggede undtagelser
, og fejl og undtagelser
.