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

Yury Selivanov yselivanov.ml at gmail.com
Fri Feb 3 18:54:33 CET 2012


Funny thing, it seems like you don't get it in the same way I did not
in the first place.  His example is more like:

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

On 2012-02-03, at 12:29 PM, Barry Warsaw wrote:

> On Feb 03, 2012, at 08:52 AM, Ethan Furman wrote:
> 
>> 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
> 
> In that context, I have to say that the last line, even if it were written
> 
>    raise e from ...
> 
> is certainly cute, but not very informative.  Triple-dots will be confusing
> and difficult to read in documentation and code, and Ellipsis has no logical
> connection to the purpose of this PEP.  So while I'm +1 on everything else in
> the PEP, I'm -1 on this particular decision.
> 
> One of the alternatives states:
> 
>    Create a special exception class, __NoException__.
> 
>    Rejected as possibly confusing, possibly being mistakenly raised by users,
>    and not being a truly unique value as None, True, and False are.
> 
> I think this should be revisited.  First, `__NoException__` doesn't need to be
> an exception class.  Ellipsis isn't so this doesn't need to be either.  I have
> no problem adding a new non-exception derived singleton to mark this.  And
> while __NoException__ may be a little confusing, something like __NoCause__
> reads great and can't be mistaken for a raiseable exception.
> 
> So your example would then be:
> 
> 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 __NoCause__
> 
> Cheers,
> -Barry
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/yselivanov.ml%40gmail.com



More information about the Python-Dev mailing list