Sobes.tech
Middle

JavaScriptda xatolarni qanday kuzatib borasiz va nazorat qilasiz?

sobes.tech AI

AIdan javob

JavaScriptdagi xatolarni quyidagi usullar bilan kuzatib boraman va nazorat qilaman:

  • Brauzer konsoli: Dasturlash bosqichida debugging uchun asosiy vosita. Xatoliklar (syntetik, mantiqiy, runtime) fayl va satr bilan ko'rsatiladi.

  • try...catch bloklari: Ishga tushirishdagi xatoliklarni ushlaydi, ularni boshqarish yoki qo'shimcha ma'lumotlarni ko'rsatish imkonini beradi.

    try {
      // Xatolik keltirib chiqarishi mumkin bo'lgan kod
      let result = riskyOperation();
    } catch (error) {
      // Xatolikni boshqarish
      console.error("Xato yuz berdi:", error.message);
      // Xatolikni serverga yuborish mumkin
      sendErrorToServer(error);
    }
    
  • window.onerror: JavaScriptda ishlov berilmagan xatoliklar uchun global handler. try...catchdan o'tgan xatoliklarni markazlashtirish imkonini beradi.

    window.onerror = function(message, source, lineno, colno, error) {
      console.error("Global xato:", message, source, lineno, colno);
      // Xato haqida ma'lumotlarni serverga yuborish
      sendErrorToServer({
        message: message,
        source: source,
        lineno: lineno,
        colno: colno,
        stack: error ? error.stack : 'N/A'
      });
      return true; // Konsolda standart xato ko'rsatilishini to'xtatish uchun true qaytariladi
    };
    
  • unhandledrejection hodisasi Promises uchun: Ishlov berilmagan xatoliklarni ushlaydi.

    window.addEventListener('unhandledrejection', function(event) {
      console.error('Ishlov berilmagan Promise rad etilishi:', event.reason);
      // Xato haqida ma'lumotlarni serverga yuborish
      sendErrorToServer(event.reason);
    });
    
  • Xatolik monitoring tizimlari (Sentry, Bugsnag, Rollbar): Professional xizmatlar, real vaqtda xatoliklarni yig'ish, to'plash va tahlil qilish. Stacktrace, foydalanuvchi muhit haqidagi ma'lumotlar, xatoliklar chastotasi va bildirishnomalarni taqdim etadi. Ishlab chiqarishda asosiy vositadir.

  • Serverga log yozish: Frontendda try...catch, onerror yoki unhandledrejection yordamida ushlangan xatoliklar serverga yuboriladi, markazlashtirilgan saqlash va tahlil uchun.

Usul tanlovi rivojlanish bosqichiga va xatolikning kritikligiga bog'liq. Ishlab chiqarishda har doim try...catch, global handlerlar va monitoring tizimlarining kombinatsiyasidan foydalanaman.