sql >> Base de Datos >  >> NoSQL >> MongoDB

Pregunta sobre el parámetro safe=True para la operación de actualización de mongodb

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 .