Sobes.tech
Middle

JavaScript'te hataları nasıl takip ediyor ve izliyorsun?

sobes.tech yapay zeka

AI'dan gelen yanıt

JavaScript'teki hataları aşağıdaki yöntemlerle izliyor ve monitör ediyorum:

  • Tarayıcı konsolu: Geliştirme aşamasında hata ayıklama için ana araçtır. Hata mesajları (sentetik, mantıksal, çalışma zamanı) dosya ve satır numarasıyla gösterilir.

  • try...catch blokları: Çalışma zamanı hatalarını yakalar, bunları işlemek veya ek bilgi göstermek için kullanılır.

    try {
      // Hata oluşturabilecek kod
      let result = riskyOperation();
    } catch (error) {
      // Hata işleme
      console.error("Bir hata oluştu:", error.message);
      // Hata sunucuya gönderilebilir
      sendErrorToServer(error);
    }
    
  • window.onerror: JavaScript'teki yakalanmamış hatalar için küresel işleyici. try...catch'in kaçtığı hataları merkezi olarak yakalamaya olanak tanır.

    window.onerror = function(message, source, lineno, colno, error) {
      console.error("Küresel hata:", message, source, lineno, colno);
      // Hata bilgilerini sunucuya gönder
      sendErrorToServer({
        message: message,
        source: source,
        lineno: lineno,
        colno: colno,
        stack: error ? error.stack : 'N/A'
      });
      return true; // Konsolda varsayılan hata gösterimini engellemek için true döner
    };
    
  • unhandledrejection olayı Promises için: İşlenmemiş hataları yakalar.

    window.addEventListener('unhandledrejection', function(event) {
      console.error('İşlenmemiş Promise Reddiyesi:', event.reason);
      // Hata bilgisini sunucuya gönder
      sendErrorToServer(event.reason);
    });
    
  • Hata izleme sistemleri (Sentry, Bugsnag, Rollbar): Gerçek zamanlı hata toplayan, toplayan ve analiz eden profesyonel servisler. Stack trace, kullanıcı ortamı bilgisi, hata sıklığı ve bildirimler sağlarlar. Üretimde ana araçtır.

  • Sunucu tarafı günlükleme: try...catch, onerror veya unhandledrejection ile yakalanan hatalar, merkezi depolama ve analiz için sunucuya gönderilir.

Yöntem seçimi, geliştirme aşamasına ve hatanın kritikliğine bağlıdır. Üretimde her zaman try...catch, küresel işleyiciler ve izleme sistemlerinin kombinasyonunu kullanıyorum.