Inline assignments
Duncan Booth
duncan.booth at invalid.invalid
Thu Mar 9 10:45:13 EST 2006
wrote:
> Coming from a background that exposed me to far too many languages, I
> find the latter two examples (i.e. use try/except) to be horrible
> solutions. It's not a matter of light/heavy weight, it's a matter of
> using exceptions for normal loop flow control is a really bad idea.
> 1) I think it's less clear why the loop works
> 2) The possibility (in more complicated examples) that this could mask
> a real exception (if for example, your function
I'm waiting for the end of that sentence...
>
> I recommend reading Effective Java (Bloch), specifically the beginning
> of the exceptions chapter, for more details why using exceptions to
> exit loops is a bad thing (and while the title is effective java, much
> of it is directly applicable to a lot of python code)
Can you paraphrase some of the arguments for those of us not fortunate
enough to have a copy of the book? I've heard a lot of arguments against
using exceptions, and most of those I have heard don't apply to Python.
Like it or not, Python uses exceptions for normal loop flow control. That's
a fact of life, live with it: every normal termination of a for loop is an
exception. Real exceptions don't get masked: for loops terminate with
StopIteration, and they only catch StopIteration, so any other exception is
propagated.
More information about the Python-list
mailing list