try y except nunca provoque que se lance una excepción. Simplemente manejan las excepciones lanzadas.
Si update lanza una excepción en caso de falla, except manejará la excepción, luego el ciclo continuará (a menos que use raise en el except cláusula).
Si update no arroja una excepción en caso de falla, sino que devuelve None (o algo así), y quieres para lanzar una excepción, puede usar:
if coll.update(...) is None: # or whatever it returns on failure
raise ValueError # or your custom Exception subclass
Tenga en cuenta que siempre debe especificar qué excepción desea capturar y solo rodear las líneas de código donde desea capturarlo con try , para que no oculte otros errores en su código:
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
Consulte try Declaración
, Excepciones integradas
y Errores y excepciones
.