Controlar errores en JavaScript con try catch

Estrada Web Group
Estrada Web Group
Controlar errores en JavaScript con try catch

Resumen: en este tutorial, aprenderá a usar la instrucción try...catch de JavaScript para manejar excepciones y cachar errores en el código.

Introducción a la sentencia try…catch de JavaScript

El siguiente ejemplo intenta llamar a la función add() que no existe:

let result = add(10, 20);
console.log(result);
console.log('Bye');

El motor de JavaScript emite el siguiente error:

Uncaught TypeError: add is not a function

El mensaje de error indica que add no es una función y el tipo de error es TypeError.

Cuando el motor de JavaScript encuentra un error, lo emite e inmediatamente finaliza la ejecución de todo el script. En el ejemplo anterior, la ejecución del código se detiene en la primera línea.

En ocasiones se quiere manejar los errores y continuar con la ejecución del código. Para ello, existe la sentencia try...catch y se usa con la siguiente sintaxis:

try {
  // el código puede causar un error
} catch(error){
  // código para manejar el error
}

En esta sintaxis:

  • Primero, colocas el código que puede causar un error en el bloque try.
  • Segundo, implementa la lógica para manejar el error en el bloque catch.

Manejo de errores con try…catch de JavaScript

Si ocurre un error en el bloque try, el motor de JavaScript ejecuta inmediatamente el código en el bloque catch. Además, el motor de JavaScript proporciona un objeto de error que contiene información detallada sobre el error.
Básicamente, el objeto de error tiene al menos dos propiedades:

  • name: especifica el nombre del error.
  • message: explica el error en detalle.

Si no se produce ningún error en el bloque try, el motor de JavaScript ignora el bloque catch.

"Ten en cuenta que los navegadores web pueden agregar más propiedades al objeto de error. Por ejemplo, Firefox agrega propiedades de nombre de archivo, número de línea y pila al objeto de error."

Es una buena práctica colocar solo el código que puede causar una excepción en el bloque try.

Ejemplos del uso de la sentencia try…catch de JavaScript

El siguiente ejemplo usa la sentencia try...catch para manejar el error:

try {
  let result = add(10, 20);
  console.log(result);
} catch (e) {
  console.log({ name: e.name, message: e.message });
}
console.log('Hasta la vista, baby');

Resultado:

{name: 'TypeError', message: 'add is not a function'}
Hasta la vista, baby

En este ejemplo, llamamos a la función add() y asignamos el valor de retorno a la variable de resultado. Debido a que la función add() no existe, el motor de JavaScript omite la declaración que envía el resultado a la consola:

console.log(result);

E inmediatamente ejecuta la declaración en el bloque catch que genera el nombre y el mensaje del error:

console.log({ name: e.name, message: e.message });

Como ya manejamos el error, el motor de JavaScript continúa ejecutando la última declaración:

console.log('Hasta la vista, baby');

Ignorar el bloque catch

El siguiente ejemplo define la función add() que devuelve la suma de dos argumentos:

const add = (x, y) => x + y;

try {
  let result = add(10, 20);
  console.log(result);
} catch (e) {
  console.log({ name: e.name, message: e.message });
}
console.log('Hasta la vista, baby');

Resultado:

30
Hasta la vista, baby

En este ejemplo, no se produce ningún error porque existe la función add(). Por lo tanto, el motor de JavaScript omite el bloque catch.

La variable de excepción

Cuando ocurre una excepción en el bloque try, la variable de excepción (e) en el bloque catch almacena el objeto de excepción.

Si no deseas utilizar la variable de excepción, puede omitirla así:

try {
  //...
} catch {
  //...
}

Por ejemplo, lo siguiente usa la sentencia try…catch sin la variable de excepción:

const isValidJSON = (str) => {
  try {
    JSON.parse(str);
    return true;
  } catch {
    return false;
  }
};

let valid = isValidJSON(`{"language":"JavaScript"}`);
console.log(valid);

Cómo funciona.

Primero, define la función isValidJSON() que acepta una cadena y devuelve true si esa cadena es un JSON válido o falso en caso contrario.

Para validar JSON, la función isValidJSON() usa el método JSON.parse() y la sentencia try...catch.

El método JSON.parse() analiza una cadena JSON y devuelve un objeto. Si la cadena de entrada no es un JSON válido, JSON.parse() genera una excepción.

Si no ocurre ninguna excepción, la función devuelve true en el bloque try. De lo contrario, devuelve false en el bloque catch.

En segundo lugar, se llama a la función isValidJSON() y se le pasa una cadena JSON:

let valid = isValidJSON(`{"language":"JavaScript"}`);

Dado que la cadena de entrada tiene un formato JSON válido, la función devuelve true.

Tercero, envía el resultado a la consola:

console.log(valid);

Resumen

  • Usa la declaración try...catch para manejar las excepciones en JavaScript.
  • Coloca solo el código que puede causar una excepción en el bloque try.

 

Compartir artículo:

Más artículos geniales

¿Cómo crear un scroll infinito con JavaScript y C#?

¿Cómo crear un scroll infinito con JavaScript y C#?

El scroll infinito es cuando un usuario visualiza una página y llega al final de esta (hasta debajo de la página), ésta realiza automáticamente una petición AJAX al servidor

Ver artículo completo

Manténgase actualizado

Obtenga excelente contenido en su bandeja de entrada todas las semanas.
Solo contenido excelente, no compartimos su correo electrónico con terceros.
Subir al inicio de la pantalla