On Dec 14, 2:48 pm, Steven D'Aprano <st...@remove-this- cybersource.com.au> wrote: > On Mon, 14 Dec 2009 14:31:44 +0000, exarkun wrote: > > On 06:46 am, tjre...@udel.edu wrote: > >>On 12/13/2009 10:29 PM, exar...@twistedmatrix.com wrote: > >>>Doesn't matter. Sometimes it makes sense to call it directly. > > >>It only makes sense to call next (or .__next__) when you are prepared to > >>explicitly catch StopIteration within a try..except construct. You did > >>not catch it, so it stopped execution. > > >>Let me repeat: StopIteration is intended only for stopping iteration. > >>Outside that use, it is a normal exception with no special meaning. > > > You cut out the part of my message where I wrote that one might have > > forgotten the exception handling code that you posit is required, and > > that the current behavior makes debugging this situation unnecessarily > > challenging. > > I don't see why you think this is any more challenging to debug than any > other equivalent bug.
"Errors should never pass silently." I'm not saying it's necessarily difficult to debug--although building a list by hand to test it is a lot more work than reading an exception traceback--but it'a stark violation of a Zen and common sense, so it is more serious than other sorts of errors. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list