[Python-Dev] PEP 409 update [was: PEP 409 - final?]

Ethan Furman ethan at stoneleaf.us
Fri Feb 3 17:52:08 CET 2012


Yury Selivanov wrote:
> Re "raise ValueError from ..."
> 
> So what does it mean now?  Just resetting __cause__ to make __context__ printed?

Whatever __cause__ was before (None, or an actual exception), it is now 
Ellipsis -- so __context__ will be printed and the exception chain will 
be followed.

> Can you show the down-to-earth snippet of code where such syntax would be useful?

Not sure I'll ever use it this way, but:

try:
   try:
     raise IndexError()
   except:
     raise CustomError() from None
except CustomError as e:
   # nevermind, let's see the whole thing after all
   raise e from Ellipsis

~Ethan~


More information about the Python-Dev mailing list