Sobes.tech
Middle

როგორ აკვირდები და მონიტორინგს უწევ JavaScript-ში შეცდომებს?

sobes.tech AI

პასუხი AI-სგან

JavaScript- ის შეცდომებს მე ვადევნებ და ვმონიტორინგ მათ შემდეგი მეთოდებით:

  • ბრაუზერის კონსოლი: ძირითადი ინსტრუმენტი განვითარების ეტაპზე. შეცდომების შეტყობინებები (სინთეტიკური, ლოგიკური, runtime) გამოჩნდება ფაილთან და ხაზთან მითითებით.

  • try...catch ბლოკები: იჭერენ შესრულების დროს წარმოქმნილ შეცდომებს, საშუალებას აძლევენ მათ დამუშავებას ან დამატებითი ინფორმაციის გამოქვეყნებას.

    try {
      // კოდი, რომელიც შეიძლება გამოიწვიოს შეცდომა
      let result = riskyOperation();
    } catch (error) {
      // შეცდომის დამუშავება
      console.error("შეცდომა მოხდა:", error.message);
      // შეცდომის სერვერზე გადაგზავნა
      sendErrorToServer(error);
    }
    
  • window.onerror: გლობალური დამუშავება JavaScript-ის გაუმკლავებელ შეცდომებზე. საშუალებას აძლევს ცენტრალიზებულად იჭერ შეცდომებს, რომლებიც "გადმოვიდნენ" try...catch-დან.

    window.onerror = function(message, source, lineno, colno, error) {
      console.error("გლობალური შეცდომა:", message, source, lineno, colno);
      // შეცდომის შესახებ ინფორმაციის სერვერზე გადაგზავნა
      sendErrorToServer({
        message: message,
        source: source,
        lineno: lineno,
        colno: colno,
        stack: error ? error.stack : 'N/A'
      });
      return true; // აბრუნებს true, რათა ჩახშოს სტანდარტული შეცდომის ჩვენება კონსოლში
    };
    
  • unhandledrejection მოვლენა Promises-ისთვის: იჭერს გაუმკლავებელ შეცდომებს.

    window.addEventListener('unhandledrejection', function(event) {
      console.error('გაუმკლავებელი დაპირების უარყოფა:', event.reason);
      // შეცდომის შესახებ ინფორმაციის სერვერზე გადაგზავნა
      sendErrorToServer(event.reason);
    });
    
  • შეცდომების მონიტორინგის სისტემები (Sentry, Bugsnag, Rollbar): პროფესიონალური სერვისები, რომლებიც აგროვებენ, აერთიანებენ და ანალიზებენ შეცდომებს რეალურ დროში. უზრუნველყოფენ სტეკრეისებს, მომხმარებლის გარემოს შესახებ ინფორმაციას, შეცდომების სიხშირეს და შეტყობინებებს. ძირითადი ინსტრუმენტია წარმოებაში.

  • სერვერზე ლოგირება: შეცდომები, რომლებიც იჭერება ფრონტენდზე try...catch, onerror ან unhandledrejection-ით, გადაეცემა სერვერზე ცენტრალიზებული შენახვის და ანალიზისთვის.

მეთოდის არჩევა დამოკიდებულია განვითარების ეტაპზე და შეცდომის კრიტიკულობაზე. მე ყოველთვის ვიყენებ try...catch, გლობალურ დამუშავებლებს და მონიტორინგის სისტემების კომბინაციას.