mirror of
https://github.com/python/cpython.git
synced 2025-11-03 11:23:31 +00:00
bpo-42669: Document that except rejects nested tuples (GH-23822)
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
This commit is contained in:
parent
b0398a4b7f
commit
c95f8bc270
2 changed files with 3 additions and 1 deletions
|
|
@ -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
|
expression, that expression is evaluated, and the clause matches the exception
|
||||||
if the resulting object is "compatible" with the exception. An object is
|
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
|
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
|
If no except clause matches the exception, the search for an exception handler
|
||||||
continues in the surrounding code and on the invocation stack. [#]_
|
continues in the surrounding code and on the invocation stack. [#]_
|
||||||
|
|
|
||||||
|
|
@ -1849,6 +1849,7 @@ Zachary Ware
|
||||||
Barry Warsaw
|
Barry Warsaw
|
||||||
Steve Waterbury
|
Steve Waterbury
|
||||||
Bob Watson
|
Bob Watson
|
||||||
|
Colin Watson
|
||||||
David Watson
|
David Watson
|
||||||
Aaron Watters
|
Aaron Watters
|
||||||
Henrik Weber
|
Henrik Weber
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue