summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
Diffstat (limited to 'Doc')
-rw-r--r--Doc/library/dis.rst4
-rw-r--r--Doc/reference/compound_stmts.rst13
-rw-r--r--Doc/reference/simple_stmts.rst5
-rw-r--r--Doc/whatsnew/3.8.rst5
4 files changed, 16 insertions, 11 deletions
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst
index aa66128..47f226b 100644
--- a/Doc/library/dis.rst
+++ b/Doc/library/dis.rst
@@ -698,8 +698,8 @@ iterations of the loop.
removed from the block stack.
It is similar to :opcode:`END_FINALLY`, but doesn't change the bytecode
- counter nor raise an exception. Used for implementing :keyword:`break`
- and :keyword:`return` in the :keyword:`finally` block.
+ counter nor raise an exception. Used for implementing :keyword:`break`,
+ :keyword:`continue` and :keyword:`return` in the :keyword:`finally` block.
.. versionadded:: 3.8
diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst
index d7792f1..153e85b 100644
--- a/Doc/reference/compound_stmts.rst
+++ b/Doc/reference/compound_stmts.rst
@@ -321,8 +321,8 @@ not handled, the exception is temporarily saved. The :keyword:`finally` clause
is executed. If there is a saved exception it is re-raised at the end of the
:keyword:`finally` clause. If the :keyword:`finally` clause raises another
exception, the saved exception is set as the context of the new exception.
-If the :keyword:`finally` clause executes a :keyword:`return` or :keyword:`break`
-statement, the saved exception is discarded::
+If the :keyword:`finally` clause executes a :keyword:`return`, :keyword:`break`
+or :keyword:`continue` statement, the saved exception is discarded::
>>> def f():
... try:
@@ -343,10 +343,7 @@ the :keyword:`finally` clause.
When a :keyword:`return`, :keyword:`break` or :keyword:`continue` statement is
executed in the :keyword:`try` suite of a :keyword:`try`...\ :keyword:`finally`
-statement, the :keyword:`finally` clause is also executed 'on the way out.' A
-:keyword:`continue` statement is illegal in the :keyword:`finally` clause. (The
-reason is a problem with the current implementation --- this restriction may be
-lifted in the future).
+statement, the :keyword:`finally` clause is also executed 'on the way out.'
The return value of a function is determined by the last :keyword:`return`
statement executed. Since the :keyword:`finally` clause always executes, a
@@ -366,6 +363,10 @@ Additional information on exceptions can be found in section :ref:`exceptions`,
and information on using the :keyword:`raise` statement to generate exceptions
may be found in section :ref:`raise`.
+.. versionchanged:: 3.8
+ Prior to Python 3.8, a :keyword:`continue` statement was illegal in the
+ :keyword:`finally` clause due to a problem with the implementation.
+
.. _with:
.. _as:
diff --git a/Doc/reference/simple_stmts.rst b/Doc/reference/simple_stmts.rst
index ef9a5f0..9186210 100644
--- a/Doc/reference/simple_stmts.rst
+++ b/Doc/reference/simple_stmts.rst
@@ -686,9 +686,8 @@ The :keyword:`continue` statement
continue_stmt: "continue"
:keyword:`continue` may only occur syntactically nested in a :keyword:`for` or
-:keyword:`while` loop, but not nested in a function or class definition or
-:keyword:`finally` clause within that loop. It continues with the next
-cycle of the nearest enclosing loop.
+:keyword:`while` loop, but not nested in a function or class definition within
+that loop. It continues with the next cycle of the nearest enclosing loop.
When :keyword:`continue` passes control out of a :keyword:`try` statement with a
:keyword:`finally` clause, that :keyword:`finally` clause is executed before
diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst
index 8569341..fcc868b 100644
--- a/Doc/whatsnew/3.8.rst
+++ b/Doc/whatsnew/3.8.rst
@@ -72,6 +72,11 @@ New Features
Other Language Changes
======================
+* A :keyword:`continue` statement was illegal in the :keyword:`finally` clause
+ due to a problem with the implementation. In Python 3.8 this restriction
+ was lifted.
+ (Contributed by Serhiy Storchaka in :issue:`32489`.)
+
* Added support of ``\N{name}`` escapes in :mod:`regular expressions <re>`.
(Contributed by Jonathan Eunice and Serhiy Storchaka in :issue:`30688`.)