← Все статьи

Окна во фронтенде

console.error — это не всё — Output Console ловит ошибки, которых ты не видишь

Output Console в JustZix показывает то, что страница пишет в консоль — без открытия DevTools. Но долгое время она показывала только то, что код вызывал явно через console.log. А половина того, что ты видишь в DevTools, вообще не приходит от console.log. С версии 2.13.86 это изменилось.

console.error — это не то же самое, что ошибка

Легко спутать две вещи:

Chrome ловит падения сам и показывает их в консоли. Если Output Console оборачивает только console.*, эти падения от неё ускользают — а это часто самые важные вещи, потому что именно они ломают страницу.

Что ловится теперь

1. Необработанные исключения

Необработанный throw, синтаксическая ошибка, runtime-ошибка — Chrome тогда диспатчит событие error на объекте window. Output Console слушает это событие и логирует сообщение вместе со stack trace и позицией файл:строка:колонка.

2. Необработанные rejection промисов

someAsync().then(...) без .catch, или await, который бросил, и никто его не поймал — Chrome диспатчит событие unhandledrejection. Output Console его слушает и показывает причину rejection как error-запись с префиксом «Unhandled promise rejection».

Почему фаза capture

Оба слушателя подключены в фазе capture. Причина: у страницы может быть свой обработчик error или unhandledrejection, вызывающий preventDefault() или stopPropagation(). Фаза capture выполняется до фазы bubbling, поэтому Output Console видит событие раньше, чем код страницы может его заглушить.

Тест на 30 секунд

Открой JS Console (или TEMP JS Console через Ctrl+Alt+J) и напечатай:

throw new Error('test boom')

Красная запись со stack trace должна появиться в Output Console. Теперь:

Promise.reject('async boom')

«Unhandled promise rejection: async boom» должна появиться. Если ты видишь оба — перехват ошибок работает.

Что мы всё ещё НЕ ловим — и почему

Это намеренные границы, не пробелы. Output Console показывает JavaScript-ошибки страницы — то, что ты обычно хочешь видеть — не весь диагностический шум браузера.

Сценарий — мониторинг продакшена без DevTools

Защёлкни Output Console у края вкладки и оставь её. Открой свой сайт после деплоя — если что-то падает, ты видишь это сразу, даже если ошибка не приходит от твоего console.error. Для QA-тестировщика это разница между «страница выглядит OK» и «страница выглядит OK, но в фоне срабатывает необработанный TypeError».

Смотри также

Установи JustZix — и увидь ошибки страницы раньше своих пользователей.

Оцени эту статью

Оценок пока нет — оцени первым.

Попробуй сам

Установи JustZix и вставь любой сниппет из этой статьи. Две минуты от нуля до работающего правила на всех твоих устройствах.

Получить JustZix

Возможности · Как это работает · Примеры · Применение