1回以上の反復で例外が発生する可能性のあるループがあります。ループを完了させてから、最初に発生した例外を発生させます。次の例では「raiseon4」です。
コード例:
e = None
for x in range(10):
try:
print x
if x == 4:
raise Exception('raise on 4')
if x == 6:
raise Exception('raise on 6')
except Exception as e:
print e
continue
else:
if e:
raise
出力:
0
1
2
3
4
raise on 4
5
6
raise on 6
7
8
9
Traceback (most recent call last):
File "<stdin>", line 7, in <module>
Exception: raise on 6
ロギングモジュールを使用してそれらを記録することはできますが、可能であれば最初の例外を発生させたいと思います。
私はまだPythonにかなり慣れていないので、「else」ステートメントを使用してループを構築した方法が非常にPythonicであるか、正しいかどうかは完全にはわかりません。