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
.