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('Иштелбеген уәде баш тартуу:', event.reason);
      // Каталар тууралуу маалыматты серверге жиберүү
      sendErrorToServer(event.reason);
    });
    
  • Каталардын мониторинг системдери (Sentry, Bugsnag, Rollbar): Кесиптик кызматтар, алар каталарды реалдуу убакытта чогултуп, бириктирип, талдайт. Стекрейстер, колдонуучунун чөйрөсү тууралуу маалымат, каталардын кайталануу деңгээли жана кабарламалар сунушталат. Өндірөдө негизги инструмент.

  • Серверде лог жүргүзүү: try...catch, onerror же unhandledrejection аркылуу алынып, фронтендде кармалган каталар серверге жөнөтүлүп, борборлоштурулган сактоо жана талдоо үчүн колдонулат.

Тандоо өнүктүрүү стадиясына жана катанын маанилүүлүгүнө жараша болот. Мен ар дайым try...catch, глобалдык иштеткичтер жана мониторинг системдеринин айкалышын колдонуп жатам.