В 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
Пингбэк: Основы языка Python за 20 минут