В 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».
Пингбэк: Чем полезна обработка ошибок при помощи try-except - PythonTurbo
Пингбэк: Геттеры и сеттеры в Python - pythonturbo
Пингбэк: Как из списка сделать строку в Python - pythonturbo
Пингбэк: Работа с файлами в Python - pythonturbo
Пингбэк: Как преобразовать строку в число в Python - pythonturbo
Пингбэк: Как получить размер файла на Python - pythonturbo
Пингбэк: Работа с JSON в Python