mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Issue #15209: Fix typo and some additional wording tweaks
This commit is contained in:
parent
3f7c0e4036
commit
0eee97cce6
1 changed files with 16 additions and 8 deletions
|
@ -39,19 +39,27 @@ When raising (or re-raising) an exception in an :keyword:`except` clause
|
||||||
new exception is not handled the traceback that is eventually displayed will
|
new exception is not handled the traceback that is eventually displayed will
|
||||||
include the originating exception(s) and the final exception.
|
include the originating exception(s) and the final exception.
|
||||||
|
|
||||||
When raising a new exception (rather than using to bare ``raise`` to re-raise
|
When raising a new exception (rather than using a bare ``raise`` to re-raise
|
||||||
the exception currently being handled), the implicit exception chain can be
|
the exception currently being handled), the implicit exception context can be
|
||||||
made explicit by using :keyword:`from` with :keyword:`raise`. The single
|
supplemented with an explicit cause by using :keyword:`from` with
|
||||||
argument to :keyword:`from` must be an exception or ``None``. It will be set
|
:keyword:`raise`::
|
||||||
as :attr:`__cause__` on the raised exception. Setting :attr:`__cause__`
|
|
||||||
also implicitly sets the :attr:`__suppress_context__` attribute to
|
raise new_exc from original_exc
|
||||||
``True``.
|
|
||||||
|
The expression following :keyword:`from` must be an exception or ``None``. It
|
||||||
|
will be set as :attr:`__cause__` on the raised exception. Setting
|
||||||
|
:attr:`__cause__` also implicitly sets the :attr:`__suppress_context__`
|
||||||
|
attribute to ``True``, so that using ``raise new_exc from None``
|
||||||
|
effectively replaces the old exception with the new one for display
|
||||||
|
purposes (e.g. converting :exc:`KeyError` to :exc:`AttributeError`, while
|
||||||
|
leaving the old exception available in :attr:`__context__` for introspection
|
||||||
|
when debugging.
|
||||||
|
|
||||||
The default traceback display code shows these chained exceptions in
|
The default traceback display code shows these chained exceptions in
|
||||||
addition to the traceback for the exception itself. An explicitly chained
|
addition to the traceback for the exception itself. An explicitly chained
|
||||||
exception in :attr:`__cause__` is always shown when present. An implicitly
|
exception in :attr:`__cause__` is always shown when present. An implicitly
|
||||||
chained exception in :attr:`__context__` is shown only if :attr:`__cause__`
|
chained exception in :attr:`__context__` is shown only if :attr:`__cause__`
|
||||||
is not set and :attr:`__suppress_context__` is false.
|
is :const:`None` and :attr:`__suppress_context__` is false.
|
||||||
|
|
||||||
In either case, the exception itself is always shown after any chained
|
In either case, the exception itself is always shown after any chained
|
||||||
exceptions so that the final line of the traceback always shows the last
|
exceptions so that the final line of the traceback always shows the last
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue