Jak śledzisz i monitorujesz błędy w JavaScript?
sobes.tech AI
Odpowiedź od AI
Błędy w JavaScript monitoruję i śledzę w następujący sposób:
-
Konsola przeglądarki: Główne narzędzie do debugowania na etapie rozwoju. Komunikaty o błędach (syntetyczne, logiczne, runtime) są wyświetlane z informacją o pliku i linii.
-
Bloki
try...catch: Przechwytują błędy wykonania, pozwalając na ich obsługę lub wyświetlenie dodatkowych informacji.try { // Kod, który może spowodować błąd let result = riskyOperation(); } catch (error) { // Obsługa błędu console.error("Wystąpił błąd:", error.message); // Można wysłać błąd na serwer sendErrorToServer(error); } -
window.onerror: Globalny obsługiwacz dla nieobsłużonych błędów JavaScript. Pozwala na centralne przechwytywanie błędów, które "przeszły" oboktry...catch.window.onerror = function(message, source, lineno, colno, error) { console.error("Globalny błąd:", message, source, lineno, colno); // Wysyłanie informacji o błędzie na serwer sendErrorToServer({ message: message, source: source, lineno: lineno, colno: colno, stack: error ? error.stack : 'N/A' }); return true; // Zwraca true, aby wyciszyć domyślny komunikat o błędzie w konsoli }; -
Zdarzenie
unhandledrejectiondla Promises: Przechwytuje nieobsłużone błędy w obietnicach.window.addEventListener('unhandledrejection', function(event) { console.error('Nieobsłużone odrzucenie Promise:', event.reason); // Wysyłanie informacji o błędzie na serwer sendErrorToServer(event.reason); }); -
Systemy monitorowania błędów (Sentry, Bugsnag, Rollbar): Profesjonalne serwisy zbierające, agregujące i analizujące błędy w czasie rzeczywistym. Dostarczają stacktrace, informacje o środowisku użytkownika, częstotliwość błędów i powiadomienia. Są głównym narzędziem w produkcji.
-
Logowanie na serwerze: Błędy przechwycone na froncie za pomocą
try...catch,onerrorlubunhandledrejectionsą wysyłane do serwera w celu centralnego przechowywania i analizy.
Wybór metody zależy od etapu rozwoju i krytyczności błędu. W produkcji zawsze używam kombinacji try...catch, globalnych obsługiwaczy i systemów monitorowania.