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
.