Kuidas jälgid ja monitoorsed JavaScripti vigu?
sobes.tech AI
Vastus AI-lt
JavaScripti vigade jälgimine ja monitooring toimub järgmiste meetoditega:
-
Brauseri konsool: Peamine tööriist vigade silumiseks arendusfaasis. Vigade teated (sünteetilised, loogilised, jooksuaegsed) kuvatakse faili ja rea numbriga.
-
try...catchplokid: Püüavad kinni jooksva ajal tekkivad vead, võimaldades neid töödelda või kuvada täiendavat teavet.try { // Kood, mis võib põhjustada vea let result = riskyOperation(); } catch (error) { // Vea töötlemine console.error("Viga:", error.message); // Vea saatmine serverile sendErrorToServer(error); } -
window.onerror: Globaalse JavaScripti vea töötleja. Võimaldab keskse jälgimise kaudu kinni püüda vead, mis "läbivad"try...catch.window.onerror = function(message, source, lineno, colno, error) { console.error("Globaalne viga:", message, source, lineno, colno); // Vea info saatmine serverile sendErrorToServer({ message: message, source: source, lineno: lineno, colno: colno, stack: error ? error.stack : 'N/A' }); return true; // Tagastab true, et takistada vaikimisi veateate kuvamine konsoolis }; -
unhandledrejectionsündmus Promises: Püüab kinni töötlemata vead.window.addEventListener('unhandledrejection', function(event) { console.error('Töötlemata Promise tagasilükkamine:', event.reason); // Vea info saatmine serverile sendErrorToServer(event.reason); }); -
Vea jälgimise süsteemid (Sentry, Bugsnag, Rollbar): Professionaalsed teenused, mis koguvad, ühendavad ja analüüsivad vigu reaalajas. Pakuvad stacktrace, kasutaja keskkonna teavet, vigade sagedust ja teavitusi. Peamine tööriist tootmises.
-
Serveri logimine: Vead, mis on kinni püütud frontendis
try...catch,onerrorvõiunhandledrejectionabil, saadetakse serverile keskse salvestamise ja analüüsi jaoks.
Valik sõltub arendusfaasist ja vea kriitilisusest. Ma kasutan alati kombinatsiooni try...catch, globaalsetest töötlejatest ja monitooringusüsteemidest.