如何在Python中捕获StopIteration异常?

完成迭代器后,下一个方法将引发StopIteration。此异常不视为错误。

我们重新编写给定代码,如下所示以捕获异常并知道其类型。

示例

import sys
try:
z = [5, 9, 7]
i = iter(z)
print i
print i.next()
print i.next()
print i.next()
print i.next()
except Exception as e:
print e
print sys.exc_type

输出结果

<listiterator object at 0x0000000002AF23C8>
5
9
7
<type 'exceptions.StopIteration'>