try
およびexcept
例外がスローされることはありません。スローされた例外を処理するだけです。
update
の場合 失敗すると例外をスローします。except
は例外を処理し、ループは続行されます( raise
を使用しない限り) 例外コード> 条項)。
update
の場合 失敗時に例外をスローしませんが、代わりに None
を返します (またはそのようなもの)、そしてあなたは欲しい 例外をスローするには、次を使用できます:
if coll.update(...) is None: # or whatever it returns on failure
raise ValueError # or your custom Exception subclass
キャッチする例外を常に指定し、キャッチしたいコード行のみを try
で囲む必要があることに注意してください。 、コード内の他のエラーを非表示にしないようにします:
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
try
を参照してください ステートメント
、組み込みの例外
、およびエラーと例外
。