When an iterator is done, it’s next method raises StopIteration. This exception is not considered an error.
We re-write the given code as follows to catch the exception and know its type.
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'>