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: Συλλαμβάνει μη διαχειριζόμενα σφάλματα σε promises.

    window.addEventListener('unhandledrejection', function(event) {
      console.error('Μη διαχειριζόμενη απόρριψη Promise:', event.reason);
      // Αποστολή πληροφοριών σφάλματος στον διακομιστή
      sendErrorToServer(event.reason);
    });
    
  • Συστήματα παρακολούθησης σφαλμάτων (Sentry, Bugsnag, Rollbar): Επαγγελματικές υπηρεσίες που συλλέγουν, συγκεντρώνουν και αναλύουν σφάλματα σε πραγματικό χρόνο. Παρέχουν stacktraces, πληροφορίες για το περιβάλλον του χρήστη, συχνότητα σφαλμάτων και ειδοποιήσεις. Είναι το κύριο εργαλείο σε παραγωγή.

  • Καταγραφή στο διακομιστή: Τα σφάλματα που συλλαμβάνονται στο frontend μέσω try...catch, onerror ή unhandledrejection αποστέλλονται στον διακομιστή για κεντρική αποθήκευση και ανάλυση.

Η επιλογή της μεθόδου εξαρτάται από το στάδιο ανάπτυξης και τη σοβαρότητα του σφάλματος. Στην παραγωγή, χρησιμοποιώ πάντα έναν συνδυασμό try...catch, παγκόσμιων χειριστών και συστημάτων παρακολούθησης.