summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2020-12-20 13:18:40 -0800
committerGitHub <noreply@github.com>2020-12-20 16:18:40 -0500
commit81f706d2db0f57c4fdd747df6e0a4cffcbc54704 (patch)
tree709fee1a650d160d7a6aa0560602ed0982d61fc1
parentbpo-42604: always set EXT_SUFFIX=${SOABI}${SHLIB_SUFFIX} when using configure... (diff)
downloadcpython-81f706d2db0f57c4fdd747df6e0a4cffcbc54704.tar.gz
cpython-81f706d2db0f57c4fdd747df6e0a4cffcbc54704.tar.bz2
cpython-81f706d2db0f57c4fdd747df6e0a4cffcbc54704.zip
bpo-42669: Document that `except` rejects nested tuples (GH-23822) (GH-23871)
In Python 2, it was possible to use `except` with a nested tuple, and occasionally natural. For example, `zope.formlib.interfaces.InputErrors` is a tuple of several exception classes, and one might reasonably think to do something like this: try: self.getInputValue() return True except (InputErrors, SomethingElse): return False As of Python 3.0, this raises `TypeError: catching classes that do not inherit from BaseException is not allowed` instead: one must instead either break it up into multiple `except` clauses or flatten the tuple. However, the reference documentation was never updated to match this new restriction. Make it clear that the definition is no longer recursive. Automerge-Triggered-By: GH:ericvsmith (cherry picked from commit c95f8bc2700b42f4568886505a819816c9b0ba28) Co-authored-by: Colin Watson <cjwatson@debian.org> Co-authored-by: Colin Watson <cjwatson@debian.org>
-rw-r--r--Doc/reference/compound_stmts.rst3
-rw-r--r--Misc/ACKS1
2 files changed, 3 insertions, 1 deletions
diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst
index 6900c7ac7d0..61037d97a0c 100644
--- a/Doc/reference/compound_stmts.rst
+++ b/Doc/reference/compound_stmts.rst
@@ -254,7 +254,8 @@ present, must be last; it matches any exception. For an except clause with an
expression, that expression is evaluated, and the clause matches the exception
if the resulting object is "compatible" with the exception. An object is
compatible with an exception if it is the class or a base class of the exception
-object or a tuple containing an item compatible with the exception.
+object, or a tuple containing an item that is the class or a base class of
+the exception object.
If no except clause matches the exception, the search for an exception handler
continues in the surrounding code and on the invocation stack. [#]_
diff --git a/Misc/ACKS b/Misc/ACKS
index 8afc0a8e46d..6ae882479d4 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1792,6 +1792,7 @@ Zachary Ware
Barry Warsaw
Steve Waterbury
Bob Watson
+Colin Watson
David Watson
Aaron Watters
Henrik Weber