mirror of https://github.com/python/cpython
bpo-44305: Improve syntax error for try blocks without except or finally (GH-26523)
This commit is contained in:
parent
3446516ffa
commit
b250f89bb7
|
@ -274,6 +274,20 @@ have been incorporated. Some of the most notable ones:
|
|||
|
||||
(Contributed by Pablo Galindo in :issue:`43823`)
|
||||
|
||||
* ``try`` blocks without ``except`` or ``finally`` blocks:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
>>> try
|
||||
... x = 2
|
||||
... something = 3
|
||||
File "<stdin>", line 3
|
||||
something = 3
|
||||
^^^^^^^^^
|
||||
SyntaxError: expected 'except' or 'finally' block
|
||||
|
||||
(Contributed by Pablo Galindo in :issue:`44305`)
|
||||
|
||||
* Usage of ``=`` instead of ``==`` in comparisons:
|
||||
|
||||
.. code-block:: python
|
||||
|
|
|
@ -964,6 +964,7 @@ invalid_with_stmt_indent:
|
|||
invalid_try_stmt:
|
||||
| a='try' ':' NEWLINE !INDENT {
|
||||
RAISE_INDENTATION_ERROR("expected an indented block after 'try' statement on line %d", a->lineno) }
|
||||
| 'try' ':' block !('except' | 'finally') { RAISE_SYNTAX_ERROR("expected 'except' or 'finally' block") }
|
||||
invalid_except_stmt:
|
||||
| 'except' a=expression ',' expressions ['as' NAME ] ':' {
|
||||
RAISE_SYNTAX_ERROR_STARTING_FROM(a, "multiple exception types must be parenthesized") }
|
||||
|
|
|
@ -882,6 +882,14 @@ leading to spurious errors.
|
|||
Traceback (most recent call last):
|
||||
SyntaxError: cannot assign to attribute here. Maybe you meant '==' instead of '='?
|
||||
|
||||
Custom error messages for try blocks that are not followed by except/finally
|
||||
|
||||
>>> try:
|
||||
... x = 34
|
||||
...
|
||||
Traceback (most recent call last):
|
||||
SyntaxError: expected 'except' or 'finally' block
|
||||
|
||||
Ensure that early = are not matched by the parser as invalid comparisons
|
||||
>>> f(2, 4, x=34); 1 $ 2
|
||||
Traceback (most recent call last):
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
Improve error message for ``try`` blocks without ``except`` or ``finally``
|
||||
blocks. Patch by Pablo Galindo.
|
969
Parser/parser.c
969
Parser/parser.c
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue