Aahz wrote:
On Sun, Mar 15, 2009, Michael Foord wrote:
Note that using exceptions for control flow can be bad for other
implementations of Python. For example exceptions on the .NET framework
are very expensive. (Although there are workarounds such as not really
raising the exception - but they're ugly).
Isn't it better practise for exceptions to be used for exceptional
circumstances rather than for control flow?
It seems to me that we as a development community already made a decision
when we switched to StopIteration as the primary mechanism for halting
``for`` loops. (Not that it was really a new decision because parts of
the Python community have always advocated using exceptions for control
flow, but the ``for`` loop enshrines it.) I doubt that using exceptions
for control flow in ``with`` blocks will cause anywhere near so much a
performance degradation.
Well, StopIteration is still an implementation detail that only
occasionally bleeds through to actual programming. It says nothing about
whether using exceptions for non-exceptional circumstances (control
flow) is good practise. Personally I think it makes the intent of code
less easy to understand - in effect the exceptions *are* being used as a
goto.
Michael
--
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/blog
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com