Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
В этой статье рассматриваются шесть демонстрационных страниц для демонстрации устранения ошибок JavaScript, о которых сообщается в консоли.
Исправление ошибок JavaScript
Основная роль консоли заключается в отображении ошибок JavaScript, обнаруженных на веб-странице.
Демонстрационная страница: ошибка JavaScript, сообщаемая в средстве консоли
Откройте демонстрационную веб-страницу с ошибкой JavaScript, сообщаемой в средстве консоли в новом окне или вкладке.
Щелкните правой кнопкой мыши в любом месте веб-страницы и выберите пункт Проверить. Или нажмите клавишу F12. DevTools откроется рядом с веб-страницей.
Нажмите кнопку Консоль на панели действий. В средствах разработки консоль предоставляет дополнительные сведения об ошибке:
Во многих сообщениях об ошибках в консоли отображается кнопка Поиск этого сообщения на веб-кнопке , показанная в виде лупы. Дополнительные сведения см. в разделе Поиск в Интернете строки сообщения об ошибке консоли.
Сведения в этом сообщении об ошибке показывают, что ошибка находится в строке
error.html16 файла.Щелкните ссылку
error.html:16справа от сообщения об ошибке в консоли. Откроется средство "Источники ", в котором выделена строка кода с ошибкой:
Скрипт пытается получить первый
h2элемент в документе и закрасить вокруг него красную границу. Но элемент неh2существует, поэтому скрипт завершается сбоем.
Поиск и отладка проблем с сетью
Консоль сообщает об ошибках сети.
Демонстрационная страница: сообщение об ошибке сети в консоли
Откройте демонстрационную веб-страницу Ошибка сети в консоли в новом окне или вкладке.
Щелкните правой кнопкой мыши в любом месте веб-страницы и выберите пункт Проверить. Или нажмите клавишу F12. DevTools откроется рядом с веб-страницей.
Таблица отображает
loading, но на веб-странице ничего не меняется, так как данные никогда не извлекаются. В консоли произошли две следующие ошибки:Ошибка сети, которая начинается с
GETметода HTTP, за которым следует URI.Ошибка
Uncaught (in promise) TypeError: data.forEach is not a function.
Щелкните ссылку на веб-страницу и строку кода, где возникает ошибка, чтобы открыть средство Источники. То есть щелкните ссылку
network-error.html:40в консоли:
Откроется средство Источники . Проблемная строка кода выделяется, за которой следует
errorкнопка (x).Нажмите кнопку ошибки (
x). Появится сообщениеFailed to load resource: the server responded with a status of 404 ().
Эта ошибка сообщает, что запрошенный URL-адрес не найден.
Откройте средство "Сеть " следующим образом: откройте консоль и щелкните URI, связанный с ошибкой.
После загрузки ресурса в консоли отображается код состояния HTTP ошибки:
В средстве "Сеть" отображаются дополнительные сведения о сбое запроса:
Проверьте заголовки в средстве "Сеть" , чтобы получить дополнительные сведения:
В чем проблема? Два символа косой черты (
//) имеются в запрошенном URI после словаrepos.Откройте инструмент Источники и проверьте строку 26. Символ косой черты (
/) возникает в конце базового URI. Средство "Источники " отображает строку кода с ошибкой:
Просмотр итоговой страницы при отсутствии ошибок в консоли
Далее мы посмотрим на итоговую страницу, когда в консоли нет ошибок.
Демонстрационная страница: исправлена ошибка сети, сообщаемая в консоли
Открытие демонстрационной веб-страницы Исправлена ошибка сети, сообщаемая в консоли в новом окне или вкладке.
Пример без ошибок загружает информацию из GitHub и отображает ее:
Демонстрационная страница: Отчеты об ошибках сети в консоли и пользовательском интерфейсе
Используйте защитные методы кодирования, чтобы избежать предыдущего взаимодействия с пользователем. Убедитесь, что код перехватывает ошибки и отображает каждую ошибку в консоли следующим образом:
Откройте демонстрационную веб-страницу Отчеты об ошибках сети в консоли и пользовательском интерфейсе в новом окне или вкладке.
Щелкните правой кнопкой мыши в любом месте веб-страницы и выберите пункт Проверить. Или нажмите клавишу F12. DevTools откроется рядом с веб-страницей.
Пример веб-страницы демонстрирует следующие методики:
Предоставьте пользователю пользовательский интерфейс, чтобы указать, что что-то пошло не так.
В консоли укажите полезные сведения об ошибке сети из кода.
В этом примере перехватывается и выводится сообщение об ошибках:
Следующий код в демонстрации перехватывает и сообщает об ошибках с помощью
handleErrorsметода , в частностиthrow Errorстроки:const handleErrors = (response) => { if (!response.ok) { let message = 'Could not load the information' document.querySelector('tbody').innerHTML = ` <tr><td colspan=3>Error ${message}</td></tr> `; throw Error(response.status + ' ' + response.statusText); } return response; };
Создание ошибок и трассировок в консоли
throw Error Помимо примера в предыдущем разделе, вы также можете создавать различные ошибки и проблемы трассировки в консоли.
Демонстрационная страница: создание отчетов об ошибках и утверждений в консоли
Чтобы отобразить два созданных сообщения об ошибках в консоли, выполните следующие действия:
Откройте демонстрационную страницу Создание отчетов об ошибках и утверждений в консоли в новом окне или вкладке.
Щелкните правой кнопкой мыши в любом месте веб-страницы и выберите пункт Проверить. Или нажмите клавишу F12. DevTools откроется рядом с веб-страницей.
В консоли отображаются сообщения об ошибках:
На демонстрационной странице используется следующий код:
function first(name) { second(name); } function second(name) { third(name); } function third(name) { if (!name) { console.error(`Name isn't defined :(`) } else { console.assert( name.length <= 8, `"${name} is not less than eight letters"` ); } } first(); first('Console'); first('Microsoft Edge Canary');Существует три функции, которые запрашивают друг друга последовательно:
first()second()third()
Каждая функция отправляет
nameаргумент в другую.third()В функции вы проверка, существует лиnameаргумент, и если он не существует, регистрируется ошибка о том, что имя не определено. Еслиnameзадано значение , метод используетсяassert()для проверка, если аргумент имеет длинуnameменее восьми букв.Вы запрашиваете функцию
first()три раза со следующими параметрами:Нет аргумента, активировающего
console.error()метод вthird()функции.Термин
Consoleв качестве параметраfirst()функции не вызывает ошибку, так какnameаргумент существует и короче восьми букв.Фраза
Microsoft Edge Canaryв качестве параметра функции приводит кfirst()тому, чтоconsole.assert()метод сообщает об ошибке, так как параметр длиннее восьми букв.
Демонстрация использует метод для создания условных
console.assert()отчетов об ошибках. Следующие два примера имеют одинаковый результат, но для одного требуется дополнительнаяif{}инструкция:let x = 20; if (x < 40) { console.error(`${x} is too small`) }; console.assert(x >= 40, `${x} is too small`)Вторая и третья строки кода выполняют один и тот же тест. Так как утверждение должно записывать отрицательный результат:
- Вы протестируете
ifвx < 40случае. - Вы проверяете наличие
x >= 40утверждения.
Демонстрационная страница: создание трассировок в консоли
Если вы не знаете, какая функция запрашивает другую функцию, используйте console.trace() метод для отслеживания запрашиваемых функций, чтобы получить доступ к текущей функции.
Чтобы отобразить трассировку в консоли, выполните следующие действия:
Откройте демонстрационную страницу Создание трассировок в консоли в новом окне или вкладке.
Щелкните правой кнопкой мыши в любом месте веб-страницы и выберите пункт Проверить. Или нажмите клавишу F12. DevTools откроется рядом с веб-страницей.
На странице используется следующий код:
function here() {there()} function there() {everywhere()} function everywhere() { console.trace(); } here(); there();Результатом является трассировка, которая
here()отображается с именемthere(), а затемeverywhere(), а во втором примере отображается, что она называетсяeverywhere().Ниже приведена трассировка, созданная в консоли:
См. также
- Общие сведения о консоли . Общее использование консоли для отображения и устранения сообщений об ошибках.