Ошибки
Решение проблем
Ошибки — обычная часть программирования, а не признак того, что у вас «не получается». Опытные разработчики видят сообщения об ошибках каждый день; разница лишь в том, что они знают, куда смотреть. Чаще всего причина простая: опечатка, не та папка, другая версия языка, незафиксированное изменение. В этом разделе — ответы на типичные ситуации новичка и порядок, в котором стоит искать причину.
Сообщение об ошибке — не приговор, а записка от программы о том, где ей стало непонятно.
Как устроен раздел: мы описываем первые шаги общими словами, без привязки к конкретным редакторам и операционным системам. Точные команды и названия настроек ищите в официальной документации вашего языка и инструментов.
Если не работает
Терминал пишет, что команда не найдена
Скорее всего, программа не установлена или терминал не знает, где она лежит. Проверьте, завершилась ли установка, перезапустите терминал и посмотрите, прописан ли путь к программе в системных настройках. Иногда команда называется чуть иначе, чем вы ожидаете, — уточните это в документации.
Программа сообщает о синтаксической ошибке
Интерпретатор не смог разобрать текст программы. Посмотрите на строку, которую он указал, и на строку перед ней: часто виноваты незакрытая скобка или кавычка, пропущенный знак препинания, лишний или недостающий отступ.
Программа запускается, но ничего не выводит
Проверьте, вызывается ли вообще нужная часть кода и сохранён ли файл перед запуском. Добавьте временный вывод на экран в нескольких местах, чтобы увидеть, докуда доходит выполнение, а потом уберите его.
У других работает, а у меня нет
Сравните версии языка и установленных библиотек, операционную систему и папку, из которой запускаете программу. Нередко дело в файле настроек или зависимости, которой у вас нет. Выручает список зависимостей с номерами версий в самом проекте.
В репозитории конфликт при слиянии
Конфликт означает, что одни и те же строки изменили в двух местах и система не знает, какой вариант оставить. Откройте файл, найдите отмеченные участки, выберите нужный вариант или объедините оба, удалите служебные отметки и зафиксируйте результат.
Пропали изменения, которые я делал
Не паникуйте и пока ничего не удаляйте. Если изменения были зафиксированы, их можно найти в истории репозитория. Если нет — проверьте, не открыт ли другой файл или другая ветка, и загляните в историю правок редактора. На будущее фиксируйте работу чаще.
Как искать причину ошибки
Прочитайте сообщение целиком
Не закрывайте окно с ошибкой сразу. Найдите тип ошибки, файл и номер строки, выпишите ключевую фразу.
Воспроизведите ошибку
Убедитесь, что ошибка повторяется при каждом запуске, и запишите, какие действия к ней приводят.
Если сбой случается только при определённом вводе, сохраните этот ввод: он станет вашим первым тестом.
Вспомните последнюю правку
Чаще всего ломается то, что трогали последним. Сравните текущую версию файла с той, что зафиксирована в репозитории.
Сократите пример
Убирайте части кода по одной, пока ошибка не исчезнет. Последний убранный фрагмент и есть главный подозреваемый.
Поищите текст ошибки
Ищите сообщение без своих имён файлов и переменных: с типичными ошибками наверняка уже кто-то сталкивался. Сверьтесь и с официальной документацией.
Спросите и запишите ответ
Если не помогло, задайте вопрос сообществу по шаблону из раздела инструкций. Когда причина найдена, занесите её в свой дневник ошибок.
Смежные разделы
- Инструкции
Пошаговые инструкции: окружение, первый скрипт, первый репозиторий, сообщения об ошибках, вопросы сообществу. Здесь же каталог публикаций.
- Инструменты
Набор новичка без брендов: редактор кода, терминал, интерпретатор или компилятор, контроль версий, хостинг репозиториев, менеджер пакетов.
- Вопросы
Ответы о справочнике, об учёбе с нуля и о первых проектах на практике.
Источники
- Документация Git
- Документация Python
Даты и определения взяты из официальной документации и спецификаций на дату подготовки. Языки и инструменты развиваются, поэтому уточняйте детали в актуальных первоисточниках.