[Python-checkins] Document the surprising sideeffect PyErr_Print(). (GH-12081)

Miss Islington (bot) webhook-mailer at python.org
Wed Feb 27 18:46:00 EST 2019

commit: a588343390356f5f7bb40e25371f0f2a092d6d72
branch: 2.7
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2019-02-27T15:45:57-08:00

Document the surprising sideeffect PyErr_Print(). (GH-12081)

Did you know an API documented as printing the pending traceback would sometimes exit the process?

You do now.
(cherry picked from commit 4173772031747a9b249be4100b4aa9eda805ea23)

Co-authored-by: Gregory P. Smith <greg at krypto.org>

M Doc/c-api/exceptions.rst

diff --git a/Doc/c-api/exceptions.rst b/Doc/c-api/exceptions.rst
index db302d8ee0ca..281e4c8473fd 100644
--- a/Doc/c-api/exceptions.rst
+++ b/Doc/c-api/exceptions.rst
@@ -44,8 +44,12 @@ is a separate error indicator for each thread.
 .. c:function:: void PyErr_PrintEx(int set_sys_last_vars)
    Print a standard traceback to ``sys.stderr`` and clear the error indicator.
-   Call this function only when the error indicator is set.  (Otherwise it will
-   cause a fatal error!)
+   **Unless** the error is a ``SystemExit``.  In that case the no traceback
+   is printed and Python process will exit with the error code specified by
+   the ``SystemExit`` instance.
+   Call this function **only** when the error indicator is set.  Otherwise it
+   will cause a fatal error!
    If *set_sys_last_vars* is nonzero, the variables :data:`sys.last_type`,
    :data:`sys.last_value` and :data:`sys.last_traceback` will be set to the

More information about the Python-checkins mailing list