From: Bruno Lalande (bruno.lalande_at_[hidden])
Date: 2008-06-11 06:26:14
>> Gennadiy Rozental wrote:
>> > This code causes an exception being thrown to stop iteration. I just
>> > wonder if
>> > there is means to avoid it.
>> Out of curiosity, what's the problem with code throwing an exception, as
>> long as it is properly caught ?
> In general? Setting aside potential performance consequences, exceptions have to
> be used only to report error conditions, not as end of loop indicator.
Beside the fact that I completely agree with you (but probably because
I'm a C++ developer), you have to be aware that Python and C++
philosophies differ dramatically. On this precise point, while C++
developers are attached to a well-defined balance between return codes
and exceptions, Python has pushed the use of exceptions to an extreme.
This often leads to things that are considered as worst practices
and/or beginner mistakes in other languages, like the fact of stopping
an iteration by throwing. In Python, the assertion that "exceptions
should only handle errors" is unfortunately false.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk