私は関数f
を使ってジェネレータを作成しますが、エラーが発生することがあります。私は実際に(エラーが発生したインデックスをプリントアウトし、python試し利回りを試してみてください
- メインブロック内
for
ループがexcept
でエラー - をキャッチした後、続けてメインコードのために起こる2つのものをご希望のエラーかもしれませんインデックス3には発生しません)
エラーが発生した後、私が立ち上がったコードは停止します。前述の2つの機能をどのように実装しますか?どうもありがとう。
def f(n):
for i in xrange(n):
if i == 3:
raise ValueError('hit 3')
yield i
if __name__ == '__main__':
a = enumerate(f(10))
try:
for i, x in a:
print i, x
except ValueError:
print 'you have a problem with index x'
例外がジェネレータ内で発生した場合、ジェネレータ自体の内部で例外をキャッチしない限り、ジェネレータの実行を再開することはできません。 – vaultah
イテレータの中の 'for 'または' main'の中の 'for'を続けたいのかどうかは分かりません.... –
メインブロックの' for'を続行します。元の投稿が編集されました。 – nos