Ошибки и исключения в Python

В Python существует два вида ошибок: синтаксические ошибки и исключения. В этой статье мы разберем, что собой представляют оба вида ошибок и чем они отличаются друг от друга.

Синтаксические ошибки в Python

Начнем с синтаксических ошибок. Пример:

>>> while True print 'Hello world'
  File "", line 1, in ?
    while True print 'Hello world'
                   ^
SyntaxError: invalid syntax

Парсер повторяет ошибочную строку и отображает “стрелку”, указывающую на самое раннее место в строке, где была обнаружена ошибка.

Ошибка вызвана лексемой, предшествующей стрелке (или, по крайней мере, обнаружена в этом месте). В примере ошибка найдена на ключевом слове print, так как перед ним отсутствует двоеточие.

Имя файла и номер строки отображаются для того, чтобы вы знали, где искать, если входные данные поступили из скрипта.

Исключения в Python

Другим видом ошибок в Python являются исключения. Даже если оператор или выражение синтаксически корректны, они могут привести к ошибке при попытке их выполнения.

Ошибки, обнаруженные во время исполнения кода, называются исключениями. Исключения бывают разных типов, и тип выводится как часть сообщения.

В примере указаны следующие типы: ZeroDivisionError, NameError и TypeError:

>>> 10 * (1/0)
Traceback (most recent call last):
  File "", line 1, in ?
ZeroDivisionError: integer division or modulo by zero
>>> 4 + spam*3
Traceback (most recent call last):
  File "", line 1, in ?
NameError: name 'spam' is not defined
>>> '2' + 2
Traceback (most recent call last):
  File "", line 1, in ?
TypeError: cannot concatenate 'str' and 'int' objects

Перевод статьи PFB Staff Writer «Errors and Exceptions in Python».

7 комментариев к “Ошибки и исключения в Python”

  1. Пингбэк: Чем полезна обработка ошибок при помощи try-except - PythonTurbo

  2. Пингбэк: Геттеры и сеттеры в Python - pythonturbo

  3. Пингбэк: Как из списка сделать строку в Python - pythonturbo

  4. Пингбэк: Работа с файлами в Python - pythonturbo

  5. Пингбэк: Как преобразовать строку в число в Python - pythonturbo

  6. Пингбэк: Как получить размер файла на Python - pythonturbo

  7. Пингбэк: Работа с JSON в Python

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *