At 10:00 PM 1/9/2007 -0800, Josiah Carlson wrote:
>I know that one of the points of all of this is so that the name that
>the exc_info() stuff gets in the local scope doesn't propagate past the
>except clause,

That is the *entire* point of this, actualy.  :)  (Well, the "as" change 
was supposed to happen anyway.)


>but I can't help feeling as if removing the name isn't a
>little overenthusiastic.
>
>Here's an alternate semantic...
>
>     try:
>         ...
>     except <exceptions> as <name>:
>         <body>
>
>... would become ...
>
>     try:
>         try:
>             ...
>         except <exceptions>:
>             <name> = sys.exc_info()
>             <body>
>     finally:
>         if '<name>' in locals():
>             <name> = None

Please provide what you'd put in the reference manual as an explanation of 
this behavior.  (Remember: if the implementation is hard to explain...)


>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.)

_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to