Kaip sekate ir stebite klaidas JavaScript?
sobes.tech AI
Atsakymas iš AI
Klaidų stebėjimas ir monitoravimas JavaScript'e vyksta šiais būdais:
-
Naršyklės konsolė: Pagrindinis įrankis klaidų derinimui kūrimo metu. Klaidos pranešimai (syntetiniai, loginiai, vykdymo metu) rodomi su failo ir eilutės nurodymais.
-
try...catchblokai: Gaudo vykdymo metu atsirandančias klaidas, leidžia jas apdoroti arba rodyti papildomą informaciją.try { // Kodas, kuris gali sukelti klaidą let result = riskyOperation(); } catch (error) { // Klaidos apdorojimas console.error("Įvyko klaida:", error.message); // Klaidos siuntimas į serverį sendErrorToServer(error); } -
window.onerror: Globalus JavaScript klaidų apdorotojas. Leidžia centralizuotai gaudyti klaidas, kurios "praeina" protry...catch.window.onerror = function(message, source, lineno, colno, error) { console.error("Globali klaida:", message, source, lineno, colno); // Informacijos apie klaidą siuntimas į serverį sendErrorToServer({ message: message, source: source, lineno: lineno, colno: colno, stack: error ? error.stack : 'N/A' }); return true; // Grąžina true, kad užslopintų standartinį klaidos rodymą konsolėje }; -
unhandledrejectionįvykis Promises: Gaudo neapdorotas klaidas.window.addEventListener('unhandledrejection', function(event) { console.error('Neapdorotas Promise atmetimas:', event.reason); // Informacijos apie klaidą siuntimas į serverį sendErrorToServer(event.reason); }); -
Klaidų stebėjimo sistemos (Sentry, Bugsnag, Rollbar): Profesionali paslauga, renka, sujungia ir analizuoja klaidas realiu laiku. Teikia stacktrace, naudotojo aplinkos informaciją, klaidų dažnumą ir pranešimus. Pagrindinis įrankis gamyboje.
-
Serverio logavimas: Klaidos, gaunamos frontende naudojant
try...catch,onerrorarunhandledrejection, siunčiamos į serverį centralizuotam saugojimui ir analizei.
Pasirinkimas priklauso nuo kūrimo stadijos ir klaidos kritiškumo. Visada naudoju try...catch, globalius apdorotojus ir stebėjimo sistemų derinį.