try
et except
ne provoque jamais la levée d'une exception. Ils gèrent simplement les exceptions levées.
Si update
lève une exception en cas d'échec, le except
gérera l'exception, puis la boucle continuera (sauf si vous utilisez raise
dans le except
clause).
Si update
ne lève pas d'exception en cas d'échec, mais renvoie à la place None
(ou quelque chose comme ça), et vous voulez pour lancer une exception, vous pouvez utiliser :
if coll.update(...) is None: # or whatever it returns on failure
raise ValueError # or your custom Exception subclass
Notez que vous devez toujours spécifier l'exception que vous souhaitez intercepter et entourer uniquement les lignes de code où vous souhaitez l'intercepter avec try
, afin de ne pas masquer d'autres erreurs dans votre code :
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
Voir le try
Déclaration
, Exceptions intégrées
, et Erreurs et exceptions
.