mirror of https://github.com/python/cpython
bpo-37651: Document CancelledError is now a subclass of BaseException (GH-15950)
https://bugs.python.org/issue37651 Automerge-Triggered-By: @1st1
This commit is contained in:
parent
97b817eae3
commit
7b69069e9a
|
@ -25,26 +25,9 @@ Exceptions
|
|||
when asyncio Tasks are cancelled. In almost all situations the
|
||||
exception must be re-raised.
|
||||
|
||||
.. important::
|
||||
.. versionchanged:: 3.8
|
||||
|
||||
This exception is a subclass of :exc:`Exception`, so it can be
|
||||
accidentally suppressed by an overly broad ``try..except`` block::
|
||||
|
||||
try:
|
||||
await operation
|
||||
except Exception:
|
||||
# The cancellation is broken because the *except* block
|
||||
# suppresses the CancelledError exception.
|
||||
log.log('an error has occurred')
|
||||
|
||||
Instead, the following pattern should be used::
|
||||
|
||||
try:
|
||||
await operation
|
||||
except asyncio.CancelledError:
|
||||
raise
|
||||
except Exception:
|
||||
log.log('an error has occurred')
|
||||
:exc:`CancelledError` is now a subclass of :class:`BaseException`.
|
||||
|
||||
|
||||
.. exception:: InvalidStateError
|
||||
|
|
Loading…
Reference in New Issue