Перейти к основному содержимому

Как читать сообщение об ошибке

Опытному пользователю

Сообщение об ошибке — текст от программы о том, что пошло не так. Компьютер при этом обычно исправен: ошибка помогает найти причину. Умение прочитать traceback или код 0x800… сокращает путь от "не работает" до "нашёл решение" — без лишней переустановки Windows.

Ошибка — сигнал, не приговор. Traceback (трассировка стека) — цепочка вызовов до сбоя. Stack trace — то же в JavaScript, Java, C#. Код ошибки — короткий идентификатор для поиска (ENOENT, 0x80070005).


Из чего состоит сообщение

ЧастьЧто значит
ТипError, Exception, SyntaxError, 404, Access denied
ТекстОписание человеческим языком
Код0x80070005, EACCES, ENOENT — удобно для поиска
Traceback / stack traceЦепочка файлов и строк — причину часто видно в последней строке
КонтекстКакая программа, команда, URL, версия ОС

Читайте снизу вверх в traceback: верхние строки — путь вызовов, нижняя — тип и суть.


Python и traceback

Traceback (most recent call last):
File "script.py", line 12, in <module>
main()
File "script.py", line 8, in main
open("missing.txt")
FileNotFoundError: [Errno 2] No such file or directory: 'missing.txt'

Разбор

  • File "script.py", line 8 — ваша строка кода.
  • FileNotFoundError — класс исключения Python.
  • 'missing.txt' — объект, с которым проблема.

См. терминал, отладку.

Node.js

Error: Cannot find module 'express'
Require stack:
- /home/user/app/server.js

Ищите Cannot find module и имя пакета. Решение часто — npm install express в папке проекта.

Java

Exception in thread "main" java.lang.NullPointerException
at com.example.App.main(App.java:15)

NullPointerException — обращение к null как к объекту. Строка 15 в App.java.

C#

System.IO.FileNotFoundException: Could not find file 'C:\data\config.json'
at Program.Main(String[] args) in Program.cs:line 42

Код CS в компиляторе (CS1002) — синтаксис; Exception в рантайме — логика или окружение.


Linux и терминал

Коды errno

Сообщение / кодСмыслЧто проверить
Permission deniedНет правchmod, sudo только осознанно, владелец файла
No such file or directoryПуть неверенls, опечатка, регистр на Linux
Connection refusedПорт закрыт или сервис не запущенsystemctl status, firewall
Address already in useПорт занятЗакрыть старый процесс, другой порт
EACCESДоступ запрещёнПрава каталога
ENOENTНет файла или каталогаПуть, монтирование диска
ENOMEMНехватка памятиfree -h, утечки
Disk quota exceededКвота дискаdf -h, очистка
Segmentation faultСбой нативного кодаБаг в C/C++, битая библиотека
KilledOOM killer убил процессМало RAM, тяжёлый процесс

systemd

Job for nginx.service failed — смотрите journalctl -u nginx -e для последних строк лога.

Docker

Error response from daemon: pull access denied — нет авторизации в registry или неверное имя образа.


Windows

Коды установки и обновления

Формат 0x8007xxxx или 0x800fxxxx.

КодТипичная причинаДействие
0x80070005Отказ в доступеЗапуск от админа, антивирус, права папки
0x80070002Файл не найденПовторить загрузку, проверить диск
0x80070070Нет местаОчистка диска, диспетчер задач
0x80070490Сбой компонентовDISM / SFC, лог CBS
0x800f0922Сбой обновленияОсвободить раздел восстановления
0xC1900101Драйвер при апгрейдеОбновить драйверы с сайта OEM

Ищите полный код + действие: 0x80070005 установка Office Windows 11.

BSOD (синий экран)

Запишите STOP code (MEMORY_MANAGEMENT, IRQL_NOT_LESS_OR_EQUAL) и код в скобках. QR на экране ведёт на страницу Microsoft — сверьте с драйверами и недавним железом.

Приложение не отвечает

Зависание UI, не всегда есть traceback. Диспетчер задач → снять дамп или завершить процесс. См. запуск приложений.

PowerShell

The term 'xyz' is not recognized — аналог command not found: программа не в PATH.

Access to the path is denied — права или файл открыт другим процессом.

Службы Windows

Error 1053: The service did not respond — таймаут старта службы; смотрите Event Viewer → Windows Logs → Application.


Браузер и веб

HTTP-коды

КодСмыслКто чинит
400Неверный запросКлиент / форма
401Нужна авторизацияЛогин, токен
403Доступ запрещёнПрава, VPN, геоблок
404Страница не найденаURL, деплой
408ТаймаутСеть, сервер
429Слишком много запросовRate limit, подождать
500Ошибка сервераБэкенд, не браузер
502Плохой шлюзПрокси, nginx
503Сервис недоступенПерегруз, maintenance
504Таймаут шлюзаМедленный бэкенд

Консоль разработчика (F12)

  • Console — красные строки JavaScript, Uncaught TypeError, CORS.
  • Network — красные запросы, статус, тело ответа.
  • Application — cookies, localStorage, service workers.

CORS (Cross-Origin Resource Sharing) — браузер блокирует запрос с другого домена без заголовков сервера. Тема для разработчика: основы веба.

Mixed Content — HTTPS-страница грузит HTTP-ресурс; браузер блокирует.

SSL/TLS

NET::ERR_CERT_AUTHORITY_INVALID — проблема сертификата сайта или перехват корпоративным прокси.

ERR_CONNECTION_REFUSED — сервер не слушает порт или firewall.


25 частых сообщений с пояснением

  1. FileNotFoundError — файл не найден по пути в Python.
  2. ModuleNotFoundError — нет установленного модуля Python.
  3. SyntaxError — опечатка в синтаксисе до запуска логики.
  4. IndentationError — отступы в Python не совпадают.
  5. TypeError — тип не подходит ("2" + 2).
  6. ValueError — тип верный, значение нет (int("abc")).
  7. KeyError — нет ключа в словаре.
  8. IndexError — индекс за пределами списка.
  9. AttributeError — нет атрибута у объекта.
  10. ZeroDivisionError — деление на ноль.
  11. ImportError / cannot import name — циклический импорт или неверное имя.
  12. ConnectionError / Timeout — сеть, DNS, firewall.
  13. JSONDecodeError — ответ не JSON, хотя ожидался.
  14. npm ERR! code ELIFECYCLE — скрипт в package.json упал; смотрите строки выше.
  15. EADDRINUSE — порт занят в Node.
  16. Gradle build failed — смотрите Caused by внизу лога.
  17. SQLException / duplicate key — нарушение уникальности в БД.
  18. OutOfMemoryError — JVM не хватило heap.
  19. Access is denied — Windows-права или антивирус.
  20. Disk full / No space left on device — диск заполнен.
  21. Git merge conflict — конфликт слияния; не ошибка компилятора, а состояние репозитория.
  22. fatal: not a git repository — команда git вне репозитория.
  23. 413 Payload Too Large — файл слишком большой для сервера.
  24. Invalid API key — неверный или просроченный ключ API.
  25. CUDA out of memory — GPU не хватило VRAM для ML.

Не ориентируйтесь только на первую строку лога — корень в последней или в блоке Caused by.


Шаблоны поисковых запросов

Подставьте свои значения в CAPS. Удаляйте личные пути.

Универсальный шаблон

"EXACT_ERROR_NAME" KEY_PHRASE STACK_VERSION

Пример: ModuleNotFoundError No module named 'requests' Python 3.11

Python

FileNotFoundError "No such file or directory" FILENAME Python VERSION
SyntaxError invalid syntax LINE_HINT
ImportError cannot import name NAME from MODULE

Node / npm

npm ERR! CODE ELIFECYCLE SCRIPT_NAME
Error Cannot find module 'PACKAGE' node VERSION
EADDRINUSE port PORT_NUMBER

Windows

0x80070005 Windows 11 ACTION "Office" OR "Update"
BSOD STOP_CODE laptop model DRIVER
PowerShell "Access to the path" ACTION

Linux

"Permission denied" COMMAND linux PATH_HINT
systemd SERVICE_NAME failed status=1
docker "pull access denied" IMAGE_NAME

Браузер / веб

HTTP 500 FRAMEWORK "production" SITE_HINT
CORS "Access-Control-Allow-Origin" fetch API
"Mixed Content" HTTPS fix

База данных

PostgreSQL ERROR_CODE "duplicate key" TABLE
SQLite "database is locked"

Git

git "fatal: refusing to merge unrelated histories"
git merge conflict FILE_EXTENSION

Операторы поиска — в эффективном поиске: кавычки для точной фразы, site:stackoverflow.com, -deprecated.


Гигиена копирования

Перед вставкой в поиск, форум, чат с ИИ или тикет в поддержку.

Удалить или заменить

ЧтоЗамена
C:\Users\Иван\...C:\Users\...\ или /home/user/...
Email, телефонuser@example.com
API key, token, Bearer***REDACTED***
IP внутренней сети10.x.x.x или 192.168.x.x
Имя сервера prodserver.example.com
Номер карты, паспортне копировать вообще
Пароль в URLубрать query string

Оставить

  • Точное имя исключения (TypeError, 0x80070005).
  • Версии (Python 3.12.1, Node 20, Windows 11 23H2).
  • Имя пакета без секретов (express, django).
  • Одну строку контекста — что делали перед ошибкой.

Минимальный воспроизводимый пример

На Stack Overflow ценят MRE (minimal reproducible example) — короткий код без лишнего, на котором ошибка повторяется.

Скриншоты

Обрезать панель задач, вкладки с почтой, имена клиентов в заголовке окна.

Логи

Для длинных логов — последние 30–50 строк вокруг ошибки, не весь файл на 10 000 строк.


Что скопировать в поиск — чек-лист

  1. Точное имя исключения или HTTP-кода.
  2. Ключевую фразу из текста (без личных путей).
  3. Версию языка, ОС, браузера.
  4. Действие одной строкой — npm run dev после git pull.
  5. При необходимости — имя файла без полного пути к домашней папке.

Работа с ИИ и форумами

  1. Вставьте traceback без секретов.
  2. Попросите объяснить последнюю строку и строку вашего файла.
  3. Проверьте совет по официальной документации.
  4. Не запускайте curl | bash и rm -rf без понимания.

Когда ошибка не про софт

  • Диск щёлкает, запах гари — железо, не лог программы.
  • Проблема только на одном сайте — возможно сбой на их стороне (проверьте downdetector или статус-страницу).
  • После грозы — сеть и питание, не только драйвер.
  • После обновления Windows один драйвер — откат или обновление с сайта производителя ноутбука.
  • Перегрев — троттлинг CPU, внезапные рестарты без понятного BSOD.

Пошаговый алгоритм для новичка

  1. Прочитать последнюю строку ошибки вслух.
  2. Записать что делали за минуту до сбоя.
  3. Скопировать по правилам гигиены.
  4. Поиск по шаблону + эффективный поиск.
  5. Одно изменение за раз при попытке исправить (не менять всё сразу).
  6. Если не помогло за 30 минут — вопрос на форум с MRE или к коллеге.

Логи и мониторинг

На работе ошибки смотрят в централизованных логах. Дома — файл лога приложения, Event Viewer, journalctl. Продвинутый уровень — мониторинг и логи.


Docker и контейнеры

СообщениеСмысл
Cannot connect to the Docker daemonДемон не запущен или нет прав в группе docker
no space left on deviceЗаполнен диск образами — docker system prune осторожно
port is already allocatedПорт хоста занят
exec format errorОбраз для другой архитектуры (ARM и x86 несовместимы)
unauthorized: authentication requireddocker login в registry

Шаблон поиска: docker ERROR_TEXT "docker compose" linux


Мобильная разработка

  • AndroidINSTALL_FAILED_* в Logcat; фильтр по уровню Error.
  • iOS — Xcode Organizer и красные строки в консоли; коды вроде Code Signing Error.
  • React Native — Metro bundler красный экран; читать последний блок, не весь лог.

Базы данных — дополнительные коды

СУБДПримерСмысл
PostgreSQL23505unique violation
PostgreSQL42P01undefined table
MySQL1062duplicate entry
SQLitedatabase is lockedдругой процесс держит файл
MongoDBE11000duplicate key

Шаблон: PostgreSQL 23505 "duplicate key" TABLE_NAME


Event Viewer в Windows

  1. Win + Reventvwr.msc.
  2. Windows Logs → Application / System.
  3. Фильтр по Critical и Error за время сбоя.
  4. Копировать General и Event ID (например 1000 для падения приложения).

Искать: Event ID 1000 APPLICATION_NAME faulting module


Пошагово — вкладка Network в браузере

  1. F12 → Network → воспроизвести ошибку.
  2. Красная строка → статус (404, 500, CORS).
  3. Вкладка Headers — URL, метод, код ответа.
  4. Response — тело ошибки от API (часто JSON с message).
  5. Preview — удобно для JSON.

Скриншот Network без токена в Authorization — замазать Bearer.


Примеры гигиены — до и после

До (плохо)

Error at C:\Users\Maria Ivanova\Documents\work\secret-project\api.py:42
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Database: postgres://admin:SuperSecret@db.prod.internal:5432/clients

После (для форума)

Error at ...\api.py:42
Authorization: Bearer ***REDACTED***
Database: postgres://admin:***@db.example.com:5432/mydb
Python 3.11, Windows 11, после pip install -r requirements.txt

Ещё 10 сообщений для справочника

  1. TLS handshake timeout — сеть, прокси, неверное время на ПК.
  2. Certificate verify failed — корпоративный MITM или устаревший корень.
  3. RPC failed — Git при большом push; увеличить buffer или сеть.
  4. panic: runtime error — Go упал; смотреть goroutine stack внизу.
  5. SIGSEGV — нарушение памяти в C/C++/Rust.
  6. KeyboardInterrupt — вы сами прервали Python Ctrl+C, не баг.
  7. TabError — смешение табов и пробелов в Python 3.
  8. UnicodeDecodeError — неверная кодировка файла (UTF-8 и cp1251 не совпали).
  9. HTTP 413 — тело запроса слишком большое.
  10. Rate limit exceeded — слишком много запросов к API; подождать или ключ.

Частые вопросы

Почему traceback такой длинный?
Показывает цепочку вызовов через библиотеки. Ваша строка обычно в блоке с вашим файлом .py / .js.

Ошибка на английском, я не знаю языка
Копируйте точную фразу в поиск; переводите только объяснение, не имя исключения.

Перезапуск помог, ошибка исчезла
Возможен race condition, сеть, кэш. Запишите условия, если повторится.

500 на сайте — моя вина?
Обычно нет, если вы не разработчик этого сайта.

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

Стоит ли переустанавливать Windows?
После точного кода и поиска, не как первый шаг.

Как учиться читать ошибки системно?
Завести заметку "видел / решение / ссылка". Через месяц — свой мини-справочник.

Ошибка на другом языке интерфейса ОС
Ищите код (0x800…) и английское имя исключения в скобках — они часто не переводятся.

Лог говорит Warning, а не Error
Warning может быть несвязан с падением; смотрите первый Error ниже по времени.

Куда писать, если ничего не нашлось?
Форум проекта, Issues на GitHub с MRE, коллега. Вложите шаблон из раздела гигиены.


Типичные цепочки ошибок

Установка пакета Python

  1. pip install XSSL certificate verify failed — сеть, прокси, антивирус.
  2. После обхода → Microsoft Visual C++ 14.0 required — нужен build tools на Windows.
  3. После установки tools → ModuleNotFoundError — другой venv, не тот Python в PATH.

Исправляйте по порядку, не все сразу.

Первый деплой

  1. Локально работает → на сервере 502.
  2. Лог nginx → connect() failed — приложение не слушает порт.
  3. После фикса порта → Environment variable DATABASE_URL missing.

Каждый шаг — отдельный поисковый запрос.


Словарь для поиска на английском

Русская ситуацияАнглийская фраза в логе
Нет файлаNo such file, File not found
Нет правPermission denied, Access denied
Порт занятAddress already in use, EADDRINUSE
ТаймаутTimeout, timed out
Отказ соединенияConnection refused
Неверный синтаксисSyntax error, Parse error

Документация и Stack Overflow чаще на английском — копируйте как есть.


Журнал ошибок — шаблон заметки

Дата:
ОС / версия:
Действие:
Точный текст ошибки:
Поисковый запрос (без PII):
Решение:
Ссылка:

Через месяц — личная база быстрее Google.


Ошибки в IDE и линтерах

ИнструментЧто показываетКак читать
VS Code ProblemsESLint, TypeScriptКлик → файл и строка
PyCharmInspectionsЖёлтый — предупреждение, красный — ошибка
gcc / clangcompile errorПервая ошибка часто тянет цепочку — чините первую
Rust cargo buildborrow checkerДлинный текст — ищите help: внизу

Линтер ругается до запуска — это дешевле, чем падение в продакшене.


Сообщения операционной системы при нехватке ресурсов

  • Windows — "Недостаточно памяти", "Закройте программы" — Диспетчер задач → память.
  • LinuxKilled, swap 100% — htop, уменьшить параллельные сборки.
  • macOS — "Your system has run out of application memory" — Activity Monitor.

Не всегда баг в коде — иногда открыто 40 вкладок Chrome и Docker с 8 ГБ RAM.


Быстрая шпаргалка

Если видитеДействие
Красный текст в терминалеЧитать снизу, копировать тип ошибки
Синий экран WindowsSTOP code, перезагрузка, драйверы
404 в браузереURL и деплой
500 в браузереСервер, логи бэкенда
Permission deniedПрава, другой процесс, sudo только осознанно

Куда дальше


Содержание