Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чаплыгин А.Н. Учимся програмировать вместе с Пи...doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

§1.6. Что такое отладка?

Программирование - довольно сложный процесс, и вполне естественно, когда программист допускает ошибку. Так повелось, что программные ошибки называют «багами» (от англ. bug - жучок). В русскоязычной литературе это слово вы не встретите, но в сленге программистов оно используется достаточно часто наряду со словом «глюк». Процесс поиска и устранения ошибок в англоязычной литературе принято обозначать термином debugging, мы же будем называть его отладкой.

Существует три типа ошибок, которые могут возникнуть в программах: синтаксические ошибки (syntax errors), ошибки выполнения (runtime errors) и семантические ошибки (semantic errors). Чтобы находить и исправлять их быстрее, имеет смысл научиться их различать.

§1.6.1. Синтаксические ошибки (syntax errors)

Любой интерпретатор сможет выполнить программу только в том случае, если программа синтаксически правильна. Соответственно компилятор тоже не сможет преобразовать программу в машинные инструкции, если программа содержит синтаксические ошибки. Когда транслятор находит ошибку (т.е. доходит до инструкции, которую не может понять), он прерывает свою работу и выводит сообщение об ошибке.

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

20

Ревизия: 170

Базовые понятия

трансляторы (и интерпретатор Питона не исключение) очень придирчивы к синтаксическим ошибкам.

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

§1.6.2. Ошибки выполнения (runtime errors)

Второй тип ошибок обычно возникает во время выполнения программы (их принято называть исключительными ситуациями или, коротко - исключениями, по-английски exceptions). Такие ошибки имеют другую причину. Если в программе возникает исключение, то это означает, что по ходу выполнения произошло что-то непредвиденное: например, программе было передано некорректное значение, или программа попыталась разделить какое-то значение на ноль, что недопустимо с точки зрения дискретной математики. Если операционная система присылает запрос на немедленное завершение программы, то также возникает исключение. Но в простых программах это достаточно редкое явление, поэтому, возможно, с ними вы столкнетесь не сразу.

§1.6.3. Семантические ошибки (semantic errors)

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

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