Sobes.tech
Middle

Ինչպե՞ս հետևում և վերահսկում ես JavaScript-ում սխալները։

sobes.tech AI

Պատասխան AI-ից

JavaScript- ում սխալները հետևում և մոնիտորինգ եմ իրականացնում հետևյալ մեթոդներով.

  • Բրաուզերի կոնսոլը: Հիմնական գործիք զարգացման փուլում սխալների դետալների համար: Սխալների հաղորդագրությունները (սինթետիկ, տրամաբանական, ռունտայմ) ցուցադրվում են ֆայլի և տողի նշումով.

  • 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('Չմշակված Promise- ի մերժում:', event.reason);
      // Սխալի մասին տեղեկությունները սերվերին ուղարկելը
      sendErrorToServer(event.reason);
    });
    
  • Սխալների մոնիտորինգի համակարգեր (Sentry, Bugsnag, Rollbar): Պրոֆեսիոնալ ծառայություններ, որոնք հավաքում, համադրում և վերլուծում են սխալները իրական ժամանակում: Պահում են stacktrace- ն, օգտագործողի շրջակա միջավայրի մասին տեղեկություններ, սխալների հաճախականությունը և ծանուցումները: Հիմնական գործիքն են արտադրության ժամանակ:

  • Սերվերի վրա լոգավորում: Ֆրոնտենդից հավաքված սխալները, որոնք բռնվել են try...catch, onerror կամ unhandledrejection- ով, ուղարկվում են սերվերին կենտրոնական պահեստավորման և վերլուծության համար:

Ընտրությունը կախված է զարգացման փուլից և սխալի կարևորությունից: Ես միշտ օգտագործում եմ try...catch, գլոբալ հսկիչներ և մոնիտորինգի համակարգերի համակցում։