try
en except
zorg er nooit voor dat er een uitzondering wordt gegenereerd. Ze handelen eenvoudigweg uitzonderingen af.
Als update
genereert een uitzondering bij een fout, de except
zal de uitzondering afhandelen, dan gaat de lus verder (tenzij je raise
gebruikt) in de except
clausule).
Als update
genereert geen uitzondering bij falen, maar retourneert in plaats daarvan None
(of iets dergelijks), en je wilt het om een uitzondering te maken, kunt u gebruiken:
if coll.update(...) is None: # or whatever it returns on failure
raise ValueError # or your custom Exception subclass
Merk op dat je altijd moet specificeren welke uitzondering je wilt opvangen, en alleen de regels code waar je het wilt opvangen omringt met try
, zodat u geen andere fouten in uw code verbergt:
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
Zie de try
Verklaring
, Ingebouwde uitzonderingen
, en Fouten en uitzonderingen
.