Saltar al contenido

JavaScript: Errores personalizados y manejo de excepciones

Aprovechar errores personalizados en JavaScript para un manejo de errores mejorado

JavaScript permite a los desarrolladores crear sus propios tipos de errores personalizados extendiendo la clase incorporada Error. Esta capacidad permite un manejo de errores más detallado y una mejor gestión de excepciones en aplicaciones complejas. Aquí, exploraremos cómo definir y usar errores personalizados a través de ejemplos prácticos.

Conceptos básicos para extender la clase Error

Para crear un error personalizado, se extiende la clase Error. Esto implica configurar una nueva clase que hereda propiedades y métodos de Error.

Creación de una clase de error personalizado

A continuación, se muestra un ejemplo simple de cómo crear un error personalizado:


javascript
class ValidationError extends Error {
  constructor(message) {
    super(message);  // Call the super class constructor and pass in the message
    Object.setPrototypeOf(this, new.target.prototype);  // Ensure instanceof works correctly across realms
    this.name = "ValidationError";  // Set the error name to the class name
  }
}

Esta clase ValidationError se puede utilizar para manejar específicamente errores relacionados con la validación en una aplicación.

Uso de errores personalizados

Una vez que haya definido un error personalizado, puede lanzarlo en su aplicación como cualquier error estándar:


Output appears here after Run.

En este ejemplo, un correo electrónico se valida contra una expresión regular. Si la validación falla, se lanza un ValidationError. Este error se captura luego en el bloque try...catch y, si es una instancia de ValidationError, se registra un mensaje específico.

Manejo de múltiples tipos de errores personalizados

Es posible que desee crear varios tipos de errores para diferentes partes de su aplicación. A continuación, se muestra cómo manejar múltiples errores personalizados:


Output appears here after Run.

Esta configuración permite un manejo distinto de diferentes tipos de errores, lo que hace que la aplicación sea más robusta y fácil de depurar.

Manejo avanzado de errores personalizados en JavaScript

Ampliando los conceptos básicos de los errores personalizados, podemos aplicarlos a escenarios más complejos como operaciones asíncronas y casos de lógica de negocio específicos.

Ejemplo 1: Manejo de errores de API personalizados

Este ejemplo demuestra cómo crear y usar un error personalizado para manejar problemas con las solicitudes de API, como cuando un recurso solicitado no se encuentra o el servidor devuelve un error.


Output appears here after Run.

Explicación

  • Clase ApiError: Esta clase personalizada captura errores específicos de la API, almacenando el código de estado HTTP junto con un mensaje personalizado.
  • Función fetchData: Intenta obtener datos de una URL proporcionada. Si la respuesta no es exitosa, lanza un ApiError con un mensaje detallado y un código de estado.
  • Manejo de errores: Los errores se capturan y manejan adecuadamente. Los errores relacionados con la API se registran con información detallada, mientras que los errores inesperados también se capturan y registran.

Ejemplo 2: Manejo de errores de validación personalizados

Use este ejemplo para manejar errores relacionados con la validación de datos, como la verificación de la entrada del usuario.


Output appears here after Run.

Explicación

  • Clase ValidationError: Una clase de error personalizada que ayuda a identificar qué campo específico de los datos de entrada falló en la verificación de validación.
  • Función validateUser: Verifica la validez de los datos del usuario. Si los datos no cumplen con ciertos criterios, lanza un ValidationError.
  • Manejo de errores: Captura errores de validación y los registra con información detallada. Otros tipos de errores también se manejan por separado.

Conclusión

Crear clases de errores personalizados en JavaScript extendiendo la clase Error es una técnica poderosa para manejar tipos específicos de errores de manera más granular. Mejora la claridad y la mantenibilidad del manejo de errores en su código, lo que le permite proporcionar retroalimentación y acciones más específicas según diferentes condiciones de error. Este método no solo ayuda en la depuración, sino que también mejora la confiabilidad de sus aplicaciones al garantizar que cada tipo de error se capture y maneje adecuadamente.

Práctica

¿Cuál es el propósito de usar clases de error extendidas en JavaScript?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.