[Python-checkins] bpo-35790: Correct the description of sys.exc_info() and add a code example (GH-11625)

JulienPalard webhook-mailer at python.org
Mon Dec 21 08:13:40 EST 2020


https://github.com/python/cpython/commit/d515c610c61b9a8c40c037a3dc3bfc8d67563658
commit: d515c610c61b9a8c40c037a3dc3bfc8d67563658
branch: master
author: Géry Ogam <gery.ogam at gmail.com>
committer: JulienPalard <julien at palard.fr>
date: 2020-12-21T14:13:08+01:00
summary:

bpo-35790: Correct the description of sys.exc_info() and add a code example (GH-11625)

files:
M Doc/reference/compound_stmts.rst

diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst
index 8da74c79801be..5bba3eea6f6c0 100644
--- a/Doc/reference/compound_stmts.rst
+++ b/Doc/reference/compound_stmts.rst
@@ -302,9 +302,27 @@ Before an except clause's suite is executed, details about the exception are
 stored in the :mod:`sys` module and can be accessed via :func:`sys.exc_info`.
 :func:`sys.exc_info` returns a 3-tuple consisting of the exception class, the
 exception instance and a traceback object (see section :ref:`types`) identifying
-the point in the program where the exception occurred.  :func:`sys.exc_info`
-values are restored to their previous values (before the call) when returning
-from a function that handled an exception.
+the point in the program where the exception occurred.  The details about the
+exception accessed via :func:`sys.exc_info` are restored to their previous values
+when leaving an exception handler::
+
+   >>> print(sys.exc_info())
+   (None, None, None)
+   >>> try:
+   ...     raise TypeError
+   ... except:
+   ...     print(sys.exc_info())
+   ...     try:
+   ...          raise ValueError
+   ...     except:
+   ...         print(sys.exc_info())
+   ...     print(sys.exc_info())
+   ...
+   (<class 'TypeError'>, TypeError(), <traceback object at 0x10efad080>)
+   (<class 'ValueError'>, ValueError(), <traceback object at 0x10efad040>)
+   (<class 'TypeError'>, TypeError(), <traceback object at 0x10efad080>)
+   >>> print(sys.exc_info())
+   (None, None, None)
 
 .. index::
    keyword: else



More information about the Python-checkins mailing list