summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorNick Coghlan <ncoghlan@gmail.com>2012-12-08 12:24:23 (GMT)
committerNick Coghlan <ncoghlan@gmail.com>2012-12-08 12:24:23 (GMT)
commit10cdf99a90b6a4ff8b976a16ac9122d1a3354cbb (patch)
tree1c99d28b17d957a60e5060a36a2cf7d9a9707540 /Doc
parente48e01c6dbf8e4cfb5e4ba1a0c45aa0ce8014827 (diff)
parent8e18fc8c0b8f9daa13d62c0b674ca5872c6a3b4c (diff)
downloadcpython-10cdf99a90b6a4ff8b976a16ac9122d1a3354cbb.zip
cpython-10cdf99a90b6a4ff8b976a16ac9122d1a3354cbb.tar.gz
cpython-10cdf99a90b6a4ff8b976a16ac9122d1a3354cbb.tar.bz2
Merge from 3.3 (Issue #15209)
Diffstat (limited to 'Doc')
-rw-r--r--Doc/library/exceptions.rst28
1 files changed, 17 insertions, 11 deletions
diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst
index f5cbb2d..0b59744 100644
--- a/Doc/library/exceptions.rst
+++ b/Doc/library/exceptions.rst
@@ -39,17 +39,23 @@ When raising (or re-raising) an exception in an :keyword:`except` clause
new exception is not handled the traceback that is eventually displayed will
include the originating exception(s) and the final exception.
-This implicit exception chain can be made explicit by using :keyword:`from` with
-:keyword:`raise`. The single argument to :keyword:`from` must be an exception
-or ``None``. It will be set as :attr:`__cause__` on the raised exception.
-Setting :attr:`__cause__` implicitly sets the :attr:`__suppress_context__` to
-``True``. If :attr:`__cause__` is an exception, it will be displayed. If
-:attr:`__cause__` is present or :attr:`__suppress_context__` has a true value,
-:attr:`__context__` will not be displayed.
-
-In either case, the default exception handling code will not display any of the
-remaining links in the :attr:`__context__` chain if :attr:`__cause__` has been
-set.
+When raising a new exception (rather than using to bare ``raise`` to re-raise
+the exception currently being handled), the implicit exception chain can be
+made explicit by using :keyword:`from` with :keyword:`raise`. The single
+argument to :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``.
+
+The default traceback display code shows these chained exceptions in
+addition to the traceback for the exception itself. An explicitly chained
+exception in :attr:`__cause__` is always shown when present. An implicitly
+chained exception in :attr:`__context__` is shown only if :attr:`__cause__`
+is not set and :attr:`__suppress_context__` is false.
+
+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
+exception that was raised.
Base classes