Как читать сообщение об ошибке
Сообщение об ошибке — текст от программы о том, что пошло не так. Компьютер при этом обычно исправен: ошибка помогает найти причину. Умение прочитать 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++, битая библиотека |
| Killed | OOM 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 частых сообщений с пояснением
- FileNotFoundError — файл не найден по пути в Python.
- ModuleNotFoundError — нет установленного модуля Python.
- SyntaxError — опечатка в синтаксисе до запуска логики.
- IndentationError — отступы в Python не совпадают.
- TypeError — тип не подходит (
"2" + 2). - ValueError — тип верный, значение нет (
int("abc")). - KeyError — нет ключа в словаре.
- IndexError — индекс за пределами списка.
- AttributeError — нет атрибута у объекта.
- ZeroDivisionError — деление на ноль.
- ImportError / cannot import name — циклический импорт или неверное имя.
- ConnectionError / Timeout — сеть, DNS, firewall.
- JSONDecodeError — ответ не JSON, хотя ожидался.
- npm ERR! code ELIFECYCLE — скрипт в package.json упал; смотрите строки выше.
- EADDRINUSE — порт занят в Node.
- Gradle build failed — смотрите Caused by внизу лога.
- SQLException / duplicate key — нарушение уникальности в БД.
- OutOfMemoryError — JVM не хватило heap.
- Access is denied — Windows-права или антивирус.
- Disk full / No space left on device — диск заполнен.
- Git merge conflict — конфликт слияния; не ошибка компилятора, а состояние репозитория.
- fatal: not a git repository — команда git вне репозитория.
- 413 Payload Too Large — файл слишком большой для сервера.
- Invalid API key — неверный или просроченный ключ API.
- 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 |
| Имя сервера prod | server.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 строк.
Что скопировать в поиск — чек-лист
- Точное имя исключения или HTTP-кода.
- Ключевую фразу из текста (без личных путей).
- Версию языка, ОС, браузера.
- Действие одной строкой —
npm run dev после git pull. - При необходимости — имя файла без полного пути к домашней папке.
Работа с ИИ и форумами
- Вставьте traceback без секретов.
- Попросите объяснить последнюю строку и строку вашего файла.
- Проверьте совет по официальной документации.
- Не запускайте
curl | bashиrm -rfбез понимания.
Когда ошибка не про софт
- Диск щёлкает, запах гари — железо, не лог программы.
- Проблема только на одном сайте — возможно сбой на их стороне (проверьте downdetector или статус-страницу).
- После грозы — сеть и питание, не только драйвер.
- После обновления Windows один драйвер — откат или обновление с сайта производителя ноутбука.
- Перегрев — троттлинг CPU, внезапные рестарты без понятного BSOD.
Пошаговый алгоритм для новичка
- Прочитать последнюю строку ошибки вслух.
- Записать что делали за минуту до сбоя.
- Скопировать по правилам гигиены.
- Поиск по шаблону + эффективный поиск.
- Одно изменение за раз при попытке исправить (не менять всё сразу).
- Если не помогло за 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 required | docker login в registry |
Шаблон поиска: docker ERROR_TEXT "docker compose" linux
Мобильная разработка
- Android —
INSTALL_FAILED_*в Logcat; фильтр по уровню Error. - iOS — Xcode Organizer и красные строки в консоли; коды вроде
Code Signing Error. - React Native — Metro bundler красный экран; читать последний блок, не весь лог.
Базы данных — дополнительные коды
| СУБД | Пример | Смысл |
|---|---|---|
| PostgreSQL | 23505 | unique violation |
| PostgreSQL | 42P01 | undefined table |
| MySQL | 1062 | duplicate entry |
| SQLite | database is locked | другой процесс держит файл |
| MongoDB | E11000 | duplicate key |
Шаблон: PostgreSQL 23505 "duplicate key" TABLE_NAME
Event Viewer в Windows
Win + R→eventvwr.msc.- Windows Logs → Application / System.
- Фильтр по Critical и Error за время сбоя.
- Копировать General и Event ID (например 1000 для падения приложения).
Искать: Event ID 1000 APPLICATION_NAME faulting module
Пошагово — вкладка Network в браузере
- F12 → Network → воспроизвести ошибку.
- Красная строка → статус (404, 500, CORS).
- Вкладка Headers — URL, метод, код ответа.
- Response — тело ошибки от API (часто JSON с
message). - 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 сообщений для справочника
- TLS handshake timeout — сеть, прокси, неверное время на ПК.
- Certificate verify failed — корпоративный MITM или устаревший корень.
- RPC failed — Git при большом push; увеличить buffer или сеть.
- panic: runtime error — Go упал; смотреть goroutine stack внизу.
- SIGSEGV — нарушение памяти в C/C++/Rust.
- KeyboardInterrupt — вы сами прервали Python Ctrl+C, не баг.
- TabError — смешение табов и пробелов в Python 3.
- UnicodeDecodeError — неверная кодировка файла (UTF-8 и cp1251 не совпали).
- HTTP 413 — тело запроса слишком большое.
- Rate limit exceeded — слишком много запросов к API; подождать или ключ.
Частые вопросы
Почему traceback такой длинный?
Показывает цепочку вызовов через библиотеки. Ваша строка обычно в блоке с вашим файлом .py / .js.
Ошибка на английском, я не знаю языка
Копируйте точную фразу в поиск; переводите только объяснение, не имя исключения.
Перезапуск помог, ошибка исчезла
Возможен race condition, сеть, кэш. Запишите условия, если повторится.
500 на сайте — моя вина?
Обычно нет, если вы не разработчик этого сайта.
Две разные ошибки после одного действия
Исправьте первую по порядку выполнения; вторая может быть следствием.
Стоит ли переустанавливать Windows?
После точного кода и поиска, не как первый шаг.
Как учиться читать ошибки системно?
Завести заметку "видел / решение / ссылка". Через месяц — свой мини-справочник.
Ошибка на другом языке интерфейса ОС
Ищите код (0x800…) и английское имя исключения в скобках — они часто не переводятся.
Лог говорит Warning, а не Error
Warning может быть несвязан с падением; смотрите первый Error ниже по времени.
Куда писать, если ничего не нашлось?
Форум проекта, Issues на GitHub с MRE, коллега. Вложите шаблон из раздела гигиены.
Типичные цепочки ошибок
Установка пакета Python
pip install X→ SSL certificate verify failed — сеть, прокси, антивирус.- После обхода → Microsoft Visual C++ 14.0 required — нужен build tools на Windows.
- После установки tools → ModuleNotFoundError — другой venv, не тот Python в PATH.
Исправляйте по порядку, не все сразу.
Первый деплой
- Локально работает → на сервере 502.
- Лог nginx → connect() failed — приложение не слушает порт.
- После фикса порта → 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 Problems | ESLint, TypeScript | Клик → файл и строка |
| PyCharm | Inspections | Жёлтый — предупреждение, красный — ошибка |
gcc / clang | compile error | Первая ошибка часто тянет цепочку — чините первую |
Rust cargo build | borrow checker | Длинный текст — ищите help: внизу |
Линтер ругается до запуска — это дешевле, чем падение в продакшене.
Сообщения операционной системы при нехватке ресурсов
- Windows — "Недостаточно памяти", "Закройте программы" — Диспетчер задач → память.
- Linux —
Killed, swap 100% —htop, уменьшить параллельные сборки. - macOS — "Your system has run out of application memory" — Activity Monitor.
Не всегда баг в коде — иногда открыто 40 вкладок Chrome и Docker с 8 ГБ RAM.
Быстрая шпаргалка
| Если видите | Действие |
|---|---|
| Красный текст в терминале | Читать снизу, копировать тип ошибки |
| Синий экран Windows | STOP code, перезагрузка, драйверы |
| 404 в браузере | URL и деплой |
| 500 в браузере | Сервер, логи бэкенда |
| Permission denied | Права, другой процесс, sudo только осознанно |