Sobes.tech
Middle

Kā tu seko un uzraugi kļūdas JavaScript?

sobes.tech AI

Atbilde no AI

Kļūdu uzraudzība un monitorings JavaScript tiek veikts ar šādām metodēm:

  • Pārlūkprogrammas konsole: Galvenais rīks kļūdu atkļūdošanai izstrādes laikā. Kļūdu ziņojumi (syntētiski, loģiski, runtime) tiek rādīti ar faila un rindas norādēm.

  • try...catch bloki: Noķer izpildes laikā radušās kļūdas, ļauj tās apstrādāt vai parādīt papildu informāciju.

    try {
      // Kods, kas var izraisīt kļūdu
      let result = riskyOperation();
    } catch (error) {
      // Kļūdas apstrāde
      console.error("Radās kļūda:", error.message);
      // Kļūdas nosūtīšana uz serveri
      sendErrorToServer(error);
    }
    
  • window.onerror: Globālais JavaScript kļūdu apstrādātājs. Ļauj centralizēti noķert kļūdas, kas "izlaistas" caur try...catch.

    window.onerror = function(message, source, lineno, colno, error) {
      console.error("Globālā kļūda:", message, source, lineno, colno);
      // Informācijas par kļūdu nosūtīšana uz serveri
      sendErrorToServer({
        message: message,
        source: source,
        lineno: lineno,
        colno: colno,
        stack: error ? error.stack : 'N/A'
      });
      return true; // Atgriež true, lai slēptu standarta kļūdas rādīšanu konsolē
    };
    
  • unhandledrejection notikums Promises: Noķer neapstrādātas kļūdas.

    window.addEventListener('unhandledrejection', function(event) {
      console.error('Neapstrādāts Promise noraidījums:', event.reason);
      // Kļūdas informācijas nosūtīšana uz serveri
      sendErrorToServer(event.reason);
    });
    
  • Kļūdu uzraudzības sistēmas (Sentry, Bugsnag, Rollbar): Profesionālas pakalpojumi, kas savāc, apvieno un analizē kļūdas reāllaikā. Nodrošina staktrace, informāciju par lietotāja vidi, kļūdu biežumu un paziņojumus. Galvenais rīks ražošanas vidē.

  • Servera žurnālu reģistrēšana: Kļūdas, kas noķertas ar try...catch, onerror vai unhandledrejection, tiek nosūtītas uz serveri centralizētai glabāšanai un analīzei.

Izvēle ir atkarīga no izstrādes posma un kļūdas kritiskuma. Es vienmēr izmantoju try...catch, globālos apstrādātājus un monitoringa sistēmu kombināciju.