try e except nunca faça com que uma exceção seja lançada. Eles simplesmente lidam com exceções lançadas. Se
update lança uma exceção em caso de falha, o except irá tratar a excepção, então o loop irá continuar (a menos que use raise no except cláusula). Se
update não lança uma exceção em caso de falha, mas retorna None (ou algo parecido) e você quer para lançar uma exceção, você pode usar:if coll.update(...) is None: # or whatever it returns on failure
raise ValueError # or your custom Exception subclass
Observe que você deve sempre especificar qual exceção deseja capturar e apenas cercar as linhas de código onde deseja capturá-la com
try , para não ocultar outros erros em seu 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 o
try Declaração
, Exceções incorporadas
e Erros e exceções
.