[Python-Dev] PEP 344: Explicit vs. Implicit Chaining

James Y Knight foom at fuhm.net
Fri May 20 23:33:15 CEST 2005


On May 20, 2005, at 4:31 AM, Ka-Ping Yee wrote:

> Guido van Rossum wrote:
>
>> Do we really need both __context__ and __cause__?
>>
>
> Well, it depends whose needs we're trying to meet.
>
> If we want to satisfy those who have been asking for chaining
> of unexpected secondary exceptions, then we have to provide that
> on some attribute.

I still don't see why people think the python interpreter should be  
automatically providing __context__. To me it seems like it'll just  
clutter things up for no good reason. If you really want the other  
exception, you can access it via the local variable in the frame  
where it was first caught. Of course right now you don't get a  
traceback, but the proposal fixes that.

 >>> def test():
...  try:
...   1/0
...  except Exception, e:
...   y
...
 >>> test()
Traceback (most recent call last):
   File "<stdin>", line 1, in ?
   File "<stdin>", line 5, in test
NameError: global name 'y' is not defined
 >>> pdb.pm()
 > <stdin>(5)test()
(Pdb) locals()
{'e': <exceptions.ZeroDivisionError instance at 0x73198>}

James



More information about the Python-Dev mailing list