Close

Урок 3. Ошибки

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

На начальном этапе освоения языка вы можете столкнуться с двумя основными типами ошибок. Наиболее распространенная ошибка — это синтаксическая, возникающая, когда вы ввели что-то некорректно в соответствии с синтаксисом python.

Изменим строку в скрипте на:

Мы удалили закрывающую кавычку на конце строки и это, конечно, ошибка. Python не сможет определить, где у этой строки конец. Сохраним скрипт и запустим его. Что произойдет?

Вы увидите ошибку «SyntaxError: EOL while scanning string literal». EOL расшифровывающийся как «End Of Line». Ошибка говорит нам о том, что python прошел по всему тексту и не нашел конца у этой строки. Среды разработки показывают место синтаксических ошибок. PyCharm покажет подобную ошибку даже до запуска программы, подсветив красной волнистой линией место в коде.

 

Другой тип ошибок с которым вы столкнетесь — это ошибки, возникающие уже после запуска программы, на каком-либо этапе ее выполнения. Изменим наш код следующим образом:

Теперь мы полностью удалили кавычки вокруг фразы. Цвет текста строки изменился. Среда разработки дает нам знать, что это больше не строка текста, которую мы хотим вывести, а нечто другое. Что же теперь делает этот код? Давайте сохраним скрипт и попытаемся выполнить его…

Мы увидим красный текст с содержимым похожим на это:

 Что же произошло? Python сообщил нам несколько вещей:

  • Произошла ошибка, точно называемая NameError.
  • Ошибка произошла в строке номер 1 скрипта.
  • Строка, сгенерировавшая ошибку это: print Hello, world.
  • Определение ошибки: name ‘Hello’ is not defined.

Это называется run-time error или ошибка во время выполнения программы. С того момента как мы убрали кавычки вокруг фразы Hello, world, python не видит текста, который мы хотим напечатать. Вместо этого, он полагает, что мы ссылаемся на две переменных, которые мы хотим напечатать. Первая переменная называется Hello, но так как мы не определяли переменную с названием Hello, то наша программа падает с ошибкой.

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

После этого запустим нашу программу.

 3_1

Как мы видим, конец света не наступил, а мы узнали еще одну ошибку с названием — ZeroDivisionError. Большинство ошибок с которыми вы столкнетесь имеют свои имена. В официальной документации по языку https://docs.python.org/2/library/exceptions.html вы можете ознакомиться с их полным списком…

Ошибки — это неотъемлемая часть процесса программирования, поэтому не стоит их бояться. Обработка их в python организована удобно и понятно. В последующих уроках мы научимся отлавливать ошибки и обрабатывать их не прерывая работы программы.

Поделиться: