AI Engineering Tools

Программирование

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

Практический справочник по поиску причины, файла, строки, предупреждений и настоящих ошибок в логах.

31 пунктов

Структура сообщения

Первая строка ошибки.

First error line

TypeError: Cannot read properties of undefined

Значение

Первая четкая строка с ошибкой часто является лучшей отправной точкой.

Как читать

Игнорируйте повторяющиеся записи в журнале отслеживания, по крайней мере, сначала, и определите первую строку, которая указывает на сбой.

Пример

TypeError: Cannot read properties of undefined

Пример запроса

Найдите первую реальную строку ошибки в этом журнале.

Структура сообщения

Имя ошибки

Error name

SyntaxError, TypeError, ReferenceError

Значение

Имя ошибки указывает на общий класс проблемы.

Как читать

Используйте это для разделения проблем, связанных с синтаксисом, временем выполнения, типами данных, сетью и средой.

Пример

SyntaxError, TypeError, ReferenceError

Пример запроса

Классифицируйте эту ошибку по имени ошибки, прежде чем предлагать исправление.

Структура сообщения

Сообщение об ошибке

Error message

Module not found: Can't resolve '@/lib/error-message-guide'

Значение

Сообщение объясняет, что инструмент не смог сделать.

Как читать

Считывайте глагол и объект: не удалось разрешить модуль, не удалось прочитать свойство или не удалось привязать порт.

Пример

Module not found: Can't resolve '@/lib/error-message-guide'

Пример запроса

Перефразируйте это сообщение об ошибке на простом корейском языке и укажите наиболее вероятную причину.

Структура сообщения

Трассировка стека

Stack trace

at SiteHeader (src/components/SiteHeader.tsx:42:15)

Значение

Список вызовов функций, которые привели к ошибке.

Как читать

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

Заметка

Верхняя строка стека не всегда является вашим кодом. Некоторые строки - это внутренние компоненты фреймворка.

Пример

at SiteHeader (src/components/SiteHeader.tsx:42:15)

Пример запроса

В этой трассировке стека определите первую строку из моего проекта.

Подсказки места

Путь к файлу.

File path

src/components/LanguageSwitcher.tsx

Значение

Путь указывает, какой файл, по мнению инструмента, задействован.

Как читать

Предпочитайте пути, расположенные в каталогах src, app, components или lib, прежде чем просматривать папки зависимостей.

Пример

src/components/LanguageSwitcher.tsx

Пример запроса

Перечислите файлы проекта, на которые ссылается эта ошибка.

Подсказки места

Строка и столбец

Line and column

src/app/page.tsx:27:12

Значение

Строка и столбец сужают местоположение до определенной области символов.

Как читать

Проверьте указанную строку и несколько строк выше, потому что реальная причина может быть раньше.

Пример

src/app/page.tsx:27:12

Пример запроса

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

Подсказки места

Строка файла проекта

Project file line

src/lib/git-github.ts:143:7

Значение

Стек или строка сборки, указывающая на исходный код, а не на зависимость.

Как читать

Обычно это строка, которую следует проверить, прежде чем читать длинные трассировки фреймворка.

Пример

src/lib/git-github.ts:143:7

Пример запроса

Разделение строк моего проекта от строк фреймворка.

Подсказки места

node_modules line

node_modules line

node_modules/next/dist/server/app-render.js

Значение

Линия внутри установленной зависимости или пакета фреймворка.

Как читать

Рассматривайте это как контекст, если в журнале также указана версия пакета или проблема конфигурации.

Заметка

Не редактируйте папку node_modules как обычную правку.

Пример

node_modules/next/dist/server/app-render.js

Пример запроса

Сообщите мне, является ли эта строка из файла node_modules причиной проблемы или просто контекстом.

JavaScript runtime

SyntaxError

SyntaxError

SyntaxError: Unexpected token '}'

Значение

JavaScript или TypeScript не смогли проанализировать код.

Как читать

Проверьте скобки, кавычки, запятые, теги JSX и неполные выражения рядом с указанной строкой.

Пример

SyntaxError: Unexpected token '}'

Пример запроса

Найдите проблему синтаксиса вокруг этой строки.

JavaScript runtime

TypeError

TypeError

TypeError: Cannot read properties of undefined

Значение

Значение не имело ожидаемой формы или поведения во время выполнения.

Как читать

Проверьте, может ли значение быть неопределенным, null, строкой вместо объекта или отсутствующей функцией.

Пример

TypeError: Cannot read properties of undefined

Пример запроса

Определите, откуда берется это неопределенное значение.

JavaScript runtime

ReferenceError

ReferenceError

ReferenceError: copy is not defined

Значение

Код попытался использовать имя переменной или функции, которое недоступно в данном контексте.

Как читать

Проверьте импорты, орфографию, область видимости и объявлена ли переменная перед ее использованием.

Пример

ReferenceError: copy is not defined

Пример запроса

Найдите причину, по которой эта переменная не определена.

JavaScript runtime

Невозможно прочитать свойства неопределенного значения

Cannot read properties of undefined

Невозможно прочитать свойства неопределенного значения (чтение 'navLabel')

Значение

Код попытался получить доступ к свойству значения, которое не определено.

Как читать

Проверьте объект перед точкой, например, copy, locale, params или результат поиска в карте.

Пример

Невозможно прочитать свойства неопределенного значения (чтение 'navLabel')

Пример запроса

Определите, какое значение является неопределенным в этой ошибке.

JavaScript runtime

не является функцией

is not a function

setOpenMenu не является функцией.

Значение

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

Как читать

Проверьте, имеет ли параметр, импорт, результат хука или метод объекта ожидаемое имя.

Пример

setOpenMenu не является функцией.

Пример запроса

Найдите причину, по которой это значение вызывается как функция.

Next.js и web

Module not found

Module not found

Module not found: Can't resolve '@/lib/error-message-guide'

Значение

Сборщик не смог найти файл или пакет, указанный в импорте.

Как читать

Проверьте, существует ли файл, правильность написания пути и указывает ли псевдоним на ожидаемую папку.

Пример

Module not found: Can't resolve '@/lib/error-message-guide'

Пример запроса

Проверьте путь импорта и фактический путь к файлу.

Next.js и web

Экспорт не найден.

Export not found

Export errorMessageGuideCopy doesn't exist in target module

Значение

Имя для импорта не соответствует ни одному экспортируемому значению из целевого файла.

Как читать

Сравните импортированное имя с точным именем экспортированной константы, функции или типа.

Пример

Export errorMessageGuideCopy doesn't exist in target module

Пример запроса

Найдите несовпадающее имя импорта или экспорта.

Next.js и web

Hydration failed

Hydration failed

Hydration failed because the server rendered HTML didn't match the client

Значение

Сгенерированный на сервере HTML не соответствовал тому, что React отображал в браузере.

Как читать

Проверьте значения, используемые только в браузере, даты, случайные значения, localStorage и состояние темы, используемые во время начальной отрисовки.

Пример

Hydration failed because the server rendered HTML didn't match the client

Пример запроса

Найдите вероятное несоответствие рендеринга на сервере и клиенте.

Next.js и web

404 Not Found

404 Not Found

GET /ko/reference/error-message-guide 404

Значение

Запрошенный маршрут или файл не найден.

Как читать

Проверьте папку маршрутов, generateStaticParams, атрибут href и экспортированный статический путь вывода.

Пример

GET /ko/reference/error-message-guide 404

Пример запроса

Проверьте, почему этот маршрут возвращает ошибку 404.

Next.js и web

500 Internal Server Error

500 Internal Server Error

GET /ko 500

Значение

Сервер получил запрос, но произошла ошибка при его обработке.

Как читать

Просмотрите журнал терминала для того же запроса, а не только код состояния браузера.

Пример

GET /ko 500

Пример запроса

Сопоставьте эту ошибку браузера 500 с ошибкой терминала, которая ее вызвала.

TypeScript и lint

Свойство не существует в типе

Property does not exist on type

Свойство 'navLabel' не существует в типе 'string'

Значение

TypeScript сообщает, что объявленный тип значения не содержит этого свойства.

Как читать

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

Пример

Свойство 'navLabel' не существует в типе 'string'

Пример запроса

Объясните, почему TypeScript считает, что этого свойства не существует.

TypeScript и lint

Тип не может быть присвоен.

Type is not assignable

Тип 'string' не может быть присвоен типу 'Locale'.

Значение

Значение передается туда, где ожидается другой тип данных.

Как читать

Сравните фактический тип значения с ожидаемым типом, указанным после "to type".

Пример

Тип 'string' не может быть присвоен типу 'Locale'.

Пример запроса

Отображать фактический тип и ожидаемый тип в этой ошибке.

TypeScript и lint

Ошибка ESLint

ESLint error

В React Hook useEffect отсутствует зависимость

Значение

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

Как читать

Считывайте имя правила и строку из файла, а затем решайте, следует ли изменять код или список зависимостей.

Пример

В React Hook useEffect отсутствует зависимость

Пример запроса

Объясните эту ошибку линтера и исправьте ее, не меняя поведение.

Next.js и web

Сборка не удалась

Build failed

Компиляция не удалась.

Значение

Сборка для производственной среды не удалось завершить.

Как читать

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

Пример

Компиляция не удалась.

Пример запроса

Определите первую критическую ошибку в этом журнале сборки.

Терминал и система

EADDRINUSE

EADDRINUSE

Error: listen EADDRINUSE: address already in use :::3001

Значение

Сервер попытался использовать порт, который уже используется другим процессом.

Как читать

Остановите старый сервер или запустите новый сервер на другом порту.

Пример

Error: listen EADDRINUSE: address already in use :::3001

Пример запроса

Найдите, что использует этот порт, и предложите следующий наиболее безопасный шаг.

Терминал и система

ENOENT

ENOENT

ENOENT: такого файла или каталога не существует, открыть 'next.config.js'.

Значение

Процесс попытался открыть файл или папку, которые не существуют по этому пути.

Как читать

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

Пример

ENOENT: такого файла или каталога не существует, открыть 'next.config.js'.

Пример запроса

Проверьте, не отсутствует ли этот файл или выполняется ли команда из неправильной папки.

Терминал и система

Доступ запрещен

Permission denied

Операция не разрешена.

Значение

Процесс не имеет разрешения на чтение, запись или выполнение целевого файла.

Как читать

Проверьте правила песочницы, разрешения файлов, защищенные папки и требуется ли разрешение.

Заметка

Не исправляйте ошибки разрешений путем широкого изменения разрешений, если вы не понимаете целевую систему.

Пример

Операция не разрешена.

Пример запроса

Объясните, почему произошла эта ошибка разрешения и какое разрешение необходимо.

Терминал и система

Команда не найдена

Command not found

zsh: command not found: next

Значение

Командная оболочка не может найти исполняемую команду с таким именем.

Как читать

Проверьте, установлены ли зависимости, следует ли использовать сценарии npm и установлен ли PATH.

Пример

zsh: command not found: next

Пример запроса

Сообщите мне, следует ли мне запускать сценарий npm вместо этой команды.

Порядок отладки

Предупреждение

Warning

DeprecationWarning: module.register() is deprecated

Значение

Предупреждение указывает на то, что что-то может потребовать внимания, но может не остановить текущую команду.

Как читать

Проверьте, успешно ли завершилась команда, прежде чем рассматривать предупреждение как ошибку.

Пример

DeprecationWarning: module.register() is deprecated

Пример запроса

Разделение блокирующих ошибок от некритических предупреждений в этом выводе.

Порядок отладки

DeprecationWarning

DeprecationWarning

DeprecationWarning: module.register() is deprecated

Значение

Функция все еще работает сейчас, но планируется заменить или удалить ее позже.

Как читать

Если сборка прошла успешно, зафиксируйте это как последующее действие, если только это не относится к вашему коду или необходимому обновлению.

Пример

DeprecationWarning: module.register() is deprecated

Пример запроса

Сообщите мне, блокирует ли это предупреждение DeprecationWarning развертывание.

Порядок отладки

Недавнее изменение

Recent change

Ошибка началась после редактирования SiteHeader.tsx

Значение

Самое последнее связанное изменение часто является наиболее ценной подсказкой.

Как читать

Сравните местоположение ошибки с файлами, измененными в текущей задаче.

Пример

Ошибка началась после редактирования SiteHeader.tsx

Пример запроса

Сравните эту ошибку с файлами, которые были изменены последними.

Порядок отладки

Повторить шаг

Reproduce step

Открыть /ko, нажмите на меню языка, затем нажмите на меню сайта.

Значение

Наименьшая последовательность действий, которая вызывает повторное появление ошибки.

Как читать

Четкие шаги воспроизведения позволяют убедиться, что исправление действительно работает.

Пример

Открыть /ko, нажмите на меню языка, затем нажмите на меню сайта.

Пример запроса

Преобразуйте это описание в точные шаги для воспроизведения.

Порядок отладки

Минимальный журнал

Minimal log

Строка ошибки + путь к файлу + строка стека из src

Значение

Короткий набор строк журнала, сохраняющий фактическую ошибку и ее местоположение.

Как читать

Сохраняйте первую ошибку, путь к файлу проекта, команду и краткое описание успеха или неудачи.

Пример

Строка ошибки + путь к файлу + строка стека из src

Пример запроса

Сжимайте этот длинный журнал в минимальное количество строк, необходимых для отладки.