Як відстежувати помилки на фронтенді?
Щоб відстежувати помилки на фронтенді, використовують зв'язку з інструментів, коду та аналітики. Ось ключові способи:
1. window.onerror і window.addEventListener('error')
Це базовий спосіб зловити більшість необроблених помилок JavaScript:
window.onerror = function(message, source, lineno, colno, error) {
// логуємо помилку на сервер або в консоль
};Додатково:
window.addEventListener('error', (event) => {
// ловимо помилки завантаження ресурсів (картинки, стилі)
});2. window.addEventListener('unhandledrejection')
Ловить необроблені помилки Promise (трапляються дуже часто):
window.addEventListener('unhandledrejection', function(event) {
// логуємо event.reason
});3. Використання готових інструментів (error analytics)
Підключаються через SDK і автоматично ловлять:
- помилки JS і асинхронних операцій,
- стек викликів, браузер, пристрій,
- сесію користувача, його дії до помилки.
Популярні сервіси:
- Sentry
- Rollbar
- LogRocket
- Bugsnag
- Datadog RUM
4. Надсилання помилок на сервер
Усі спіймані помилки варто надсилати на бекенд або сторонній сервіс:
fetch('/log-error', {
method: 'POST',
body: JSON.stringify({ message, stack, url }),
});5. Зв'язка з користувацькими подіями (event analytics)
Помилки корисно пов'язувати з діями:
- що клікнув,
- яка URL-адреса,
- де перебував користувач. Це можна робити вручну або через такі сервіси, як Sentry + session replay.
6. Власні логери та консольні перехоплювачі (для SPA)
Перехоплюємо console.error, console.warn, щоб аналізувати навіть нефатальні проблеми.
const origConsoleError = console.error;
console.error = function(...args) {
sendToLogger(args);
origConsoleError.apply(console, args);
};Висновок: Щоб відстежувати помилки на фронті, потрібен збір з усіх рівнів: глобальні пастки, обробка Promise, інструменти аналітики, контекст дій. Без цього продукту не видно, де і як він руйнується в користувача.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.