All right,

I've seen this multiple times in the past, but most recently with [my question here](https://stackoverflow.com/questions/7271245/python-clean-way-to-wrap-individual-statements-in-a-try-except-block). So, I'm curious why this is the case, *in python* because generators use exceptions to indicate the end of the data.

If this is so bad for everyone using python, why does the language include it in what are considered fundamental control structures? For those who want to read the relevant PEP [go here](http://www.python.org/dev/peps/pep-0255/).