[Python-3000] self-contained exceptions

Josiah Carlson jcarlson at uci.edu
Wed Jan 10 17:53:46 CET 2007


"Phillip J. Eby" <pje at telecommunity.com> wrote:
> At 10:00 PM 1/9/2007 -0800, Josiah Carlson wrote:
[snip]
> Please provide what you'd put in the reference manual as an explanation of 
> this behavior.  (Remember: if the implementation is hard to explain...)

If the name to the right of the 'as' keyword perpetuates beyond the end
of the try/except/finally clause, it will be rebound to None before user
code is executed further.


> >The benefit to the above is that the name only disappears from the
> >namespace if the user deletes it, otherwise the name is bound to None.
> 
> Please explain how this is a benefit.  By making any use of the name raise 
> an error, we ensure that you will detect your mistake early, whereas 
> binding the name to None may allow the value to be passed, stored, 
> returned, or otherwise used, with the problem not being detected until 
> later, when it may be much harder to trace back to the source.
> 
> In other words, eliminating the error is *not* a benefit here.  (Errors 
> should not pass silently.)

I'm not sure that the error would pass silently for very long, as None
can't really do a whole lot of things.  Then again, any duration is
probably too much, as you say.


 - Josiah



More information about the Python-3000 mailing list