Sobes.tech
Middle

¿Cómo rastreas y monitoreas los errores en JavaScript?

sobes.tech AI

Respuesta de la IA

Errores en JavaScript los sigo y monitoreo de las siguientes maneras:

  • Consola del navegador: La herramienta principal para depuración en la etapa de desarrollo. Los mensajes de error (sintéticos, lógicos, en tiempo de ejecución) se muestran indicando el archivo y la línea.

  • Bloques try...catch: Capturan errores de ejecución, permitiendo manejarlos o mostrar información adicional.

    try {
      // Código que puede causar un error
      let result = riskyOperation();
    } catch (error) {
      // Manejo del error
      console.error("Ocurrió un error:", error.message);
      // Se puede enviar el error al servidor
      sendErrorToServer(error);
    }
    
  • window.onerror: Manejador global para errores no capturados en JavaScript. Permite interceptar errores que "pasaron" por alto try...catch.

    window.onerror = function(message, source, lineno, colno, error) {
      console.error("Error global:", message, source, lineno, colno);
      // Envío de información del error al servidor
      sendErrorToServer({
        message: message,
        source: source,
        lineno: lineno,
        colno: colno,
        stack: error ? error.stack : 'N/A'
      });
      return true; // Retorna true para suprimir la visualización estándar del error en la consola
    };
    
  • Evento unhandledrejection para Promesas: Captura errores no manejados en promesas.

    window.addEventListener('unhandledrejection', function(event) {
      console.error('Rechazo de promesa no manejado:', event.reason);
      // Envío de información del error al servidor
      sendErrorToServer(event.reason);
    });
    
  • Sistemas de monitoreo de errores (Sentry, Bugsnag, Rollbar): Servicios profesionales que recopilan, agregan y analizan errores en tiempo real. Ofrecen rastreo de pila, información del entorno del usuario, frecuencia de errores y notificaciones. Son la herramienta principal en producción.

  • Registro en el servidor: Los errores capturados en el frontend mediante try...catch, onerror o unhandledrejection se envían al servidor para almacenamiento y análisis centralizado.

La elección del método depende de la etapa de desarrollo y la criticidad del error. En producción, siempre uso una combinación de try...catch, manejadores globales y sistemas de monitoreo.