我有一个循环,可能会在一次或多次迭代中引发异常。我希望循环完成,然后引发遇到的第一个异常,在以下示例中为“raise on 4”。
示例代码:
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 或正确。