Skip to content

Commit

Permalink
bpo-44322: Document more SyntaxError details. (pythonGH-26562)
Browse files Browse the repository at this point in the history
1. SyntaxError args have a tuple of other attributes.
2. Attributes are adjusted for errors in f-string field expressions.
3. Compile() can raise SyntaxErrors.
(cherry picked from commit 67dfa6f)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
  • Loading branch information
terryjreedy authored and miss-islington committed Jun 7, 2021
1 parent b5cedd0 commit 0f33334
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
11 changes: 9 additions & 2 deletions Doc/library/exceptions.rst
Expand Up @@ -409,14 +409,16 @@ The following exceptions are the exceptions that are usually raised.

.. versionadded:: 3.5

.. exception:: SyntaxError
.. exception:: SyntaxError(message, details)

Raised when the parser encounters a syntax error. This may occur in an
:keyword:`import` statement, in a call to the built-in functions :func:`exec`
:keyword:`import` statement, in a call to the built-in functions
:func:`compile`, :func:`exec`,
or :func:`eval`, or when reading the initial script or standard input
(also interactively).

The :func:`str` of the exception instance returns only the error message.
Details is a tuple whose members are also available as separate attributes.

.. attribute:: filename

Expand Down Expand Up @@ -446,6 +448,11 @@ The following exceptions are the exceptions that are usually raised.
The column in the end line where the error occurred finishes. This is
1-indexed: the first character in the line has an ``offset`` of 1.

For errors in f-string fields, the message is prefixed by "f-string: "
and the offsets are offsets in a text constructed from the replacement
expression. For example, compiling f'Bad {a b} field' results in this
args attribute: ('f-string: ...', ('', 1, 2, '(a b)\n', 1, 5)).

.. versionchanged:: 3.10
Added the :attr:`end_lineno` and :attr:`end_offset` attributes.

Expand Down
@@ -0,0 +1,2 @@
Document that SyntaxError args have a details tuple and that details are
adjusted for errors in f-string field replacement expressions.

0 comments on commit 0f33334

Please sign in to comment.