homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ncoghlan
Recipients Arfrever, Tyler.Crompton, ethan.furman, georg.brandl, ncoghlan, python-dev
Date 2012年12月09日.06:24:11
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <CADiSq7f16vnyCzw82bCMeQK=D9Zj0+Ntk7C8_4brAbiMQcyDbA@mail.gmail.com>
In-reply-to <1354985956.6.0.815394333998.issue15209@psf.upfronthosting.co.za>
Content
On Sun, Dec 9, 2012 at 2:59 AM, Ethan Furman <report@bugs.python.org> wrote:
>
> Ethan Furman added the comment:
>
> There is one typo and one error in the first paragraph of the patch:
>
> > When raising a new exception (rather than
> > using to bare ``raise`` to re-raise the
> ^ should be an 'a'
>
Fixed.
> > Setting :attr:`__cause__` also implicitly sets
> > the :attr:`__suppress_context__` attribute to ``True``.
>
> The last sentence is incorrect -- __suppress_context__ is only set to True
> if __cause__ is set to None; if __cause__ is set to any other exception
> __suppress_context__ remains False and the new exception chain will be
> printed:
>
> >>> try:
> ... raise ValueError
> ... except:
> ... raise NameError from KeyError
> ...
> KeyError
>
> The above exception was the direct cause of the following exception:
>
> Traceback (most recent call last):
> File "<stdin>", line 4, in <module>
> NameError
>
Not true: __suppress_context__ is always set as a side effect of setting
__cause__ (it's built into the setter for the __cause__ descriptor). What
you're seeing in the traceback above is the explicit cause, not the
implicit context.
>>> e = Exception()
>>> e.__cause__ = Exception()
>>> e.__suppress_context__
True
The only mechanism we offer to suppress an explicit __cause__ is setting
__cause__ to None.
Cheers,
Nick.
History
Date User Action Args
2012年12月09日 06:24:12ncoghlansetrecipients: + ncoghlan, georg.brandl, Arfrever, ethan.furman, python-dev, Tyler.Crompton
2012年12月09日 06:24:12ncoghlanlinkissue15209 messages
2012年12月09日 06:24:11ncoghlancreate

AltStyle によって変換されたページ (->オリジナル) /