try
a except
nikdy nezpůsobí vyvolání výjimky. Jednoduše zpracovávají vyhozené výjimky.
Pokud update
při selhání vyvolá výjimku, except
zpracuje výjimku, pak bude smyčka pokračovat (pokud nepoužijete raise
v except
doložka).
Pokud update
nevyvolá výjimku při selhání, ale místo toho vrátí None
(nebo něco takového) a chcete k vyvolání výjimky můžete použít:
if coll.update(...) is None: # or whatever it returns on failure
raise ValueError # or your custom Exception subclass
Všimněte si, že byste měli vždy specifikovat, kterou výjimku chcete zachytit, a obklopit řádky kódu pouze tam, kde ji chcete zachytit, pomocí try
, takže ve svém kódu neskryjete další chyby:
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
Viz try
Prohlášení
, Vestavěné výjimky
a Chyby a výjimky
.