ジェネレーターで発生する可能性のある例外をキャッチする必要がある場合、try ブロックをできるだけ小さく保つにはどうすればよいですか?
典型的な状況は次のようになります。
for i in g():
process(i)
g()
キャッチする必要がある例外を発生させることができる場合、最初のアプローチは次のとおりです。
try:
for i in g():
process(i)
except SomeException as e:
pass # handle exception ...
SomeException
しかし、これは発生した場合にもキャッチされますprocess(i)
(これは私が望んでいないことです)。
この状況を処理するための標準的なアプローチはありますか? なんかのパターン?
私が探しているのは、次のようなものです。
try:
for i in g():
except SomeException as e:
pass # handle exception ...
process(i)
(もちろん、これは構文上のナンセンスです。)