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
.