JavaScript

JavaScript

Tutorial JavaScript: Excepciones

JavaScript excepciones: manejo y prevención. Domina el manejo de excepciones en JavaScript con técnicas y ejemplos prácticos.

Las excepciones en JavaScript son eventos que ocurren durante la ejecución de un programa cuando se encuentra con un error o una situación inesperada. Estas excepciones pueden ser manejadas utilizando bloques de código específicos, como try, catch y finally. El manejo de excepciones permite anticiparse a posibles problemas y manejarlos de manera adecuada, en lugar de permitir que el programa falle o se comporte de manera inesperada.

La estructura try-catch-finally

try

El bloque try es donde se coloca el código que puede arrojar una excepción. Este bloque es seguido por uno o más bloques catch que definen cómo manejar las diferentes excepciones que pueden ocurrir en el bloque try.

try {
  // Código que podría generar una excepción
} catch (error) {
  // Código para manejar la excepción
}

catch

El bloque catch es utilizado para capturar y manejar las excepciones que son arrojadas dentro del bloque try. Se puede tener múltiples bloques catch para manejar distintos tipos de errores o excepciones, aunque esto no es muy común en JavaScript.

try {
  // Código que podría generar una excepción
} catch (error) {
  if (error instanceof TypeError) {
    // Manejar error de tipo TypeError
  } else if (error instanceof ReferenceError) {
    // Manejar error de tipo ReferenceError
  } else {
    // Manejar todos los otros tipos de error
  }
}

finally

El bloque finally es opcional y se coloca al final de la secuencia try-catch. Este bloque contiene código que se ejecutará independientemente de si ocurrió una excepción o no, y siempre se ejecuta después de los bloques try y catch.

try {
  // Código que podría generar una excepción
} catch (error) {
  // Código para manejar la excepción
} finally {
  // Código que se ejecutará siempre, haya o no haya ocurrido una excepción
}

Ejemplo de uso de excepciones en JavaScript

A continuación, se muestra un ejemplo de cómo usar excepciones en JavaScript para manejar errores en una función que realiza la división entre dos números:

function dividir(a, b) {
  try {
    // Lanzar excepción si 'a' o 'b' no son de tipo number
    if (typeof a !== 'number' || typeof b !== 'number') {
      throw new TypeError('Los argumentos deben ser números');
    }

    // Lanzar excepción si se intenta dividir por 0
    if (b === 0) {
      throw new Error('La división por cero no está permitida');
    }
    
    return a / b;
  } catch (error) {
    console.error('Error al realizar la división:', error);
  } finally {
    console.log('La función dividir() ha sido ejecutada');
  }
}

const resultado1 = dividir(10, 2); // 5
const resultado2 = dividir(10, 'a'); // Error al realizar la división: Los argumentos deben ser números
const resultado3 = dividir(10, 0); // Error al realizar la división: La división por cero no está permitida

En el ejemplo anterior, la función dividir() utiliza un bloque try para intentar realizar la división entre dos números. Si los argumentos provistos no son números, se arroja una excepción de tipo TypeError. Si el divisor (b) es igual a cero, se arroja una excepción de tipo Error con un mensaje específico. Estas excepciones son manejadas en el bloque catch, donde se muestra un mensaje de error en la consola. El bloque finally se utiliza para mostrar un mensaje indicando que la función ha sido ejecutada, independientemente de si ocurrió una excepción o no.

Certifícate en JavaScript con CertiDevs PLUS

Ejercicios de esta lección Excepciones

Evalúa tus conocimientos de esta lección Excepciones con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Funciones flecha

JavaScript
Puzzle

Polimorfismo

JavaScript
Test

Array

JavaScript
Código

Transformación con map()

JavaScript
Test

Introducción a JavaScript

JavaScript
Test

Gestor de tareas con JavaScript

JavaScript
Proyecto

Manipulación DOM

JavaScript
Test

Funciones

JavaScript
Test

Funciones flecha

JavaScript
Código

Async / Await

JavaScript
Código

Creación y uso de variables

JavaScript
Test

Excepciones

JavaScript
Puzzle

Promises

JavaScript
Código

Funciones cierre (closure)

JavaScript
Test

Herencia

JavaScript
Puzzle

Herencia

JavaScript
Test

Estructuras de control

JavaScript
Código

Selección de elementos DOM

JavaScript
Test

Modificación de elementos DOM

JavaScript
Test

Filtrado con filter() y find()

JavaScript
Test

Funciones cierre (closure)

JavaScript
Puzzle

Funciones

JavaScript
Puzzle

Mapas con Map

JavaScript
Test

Reducción con reduce()

JavaScript
Test

Callbacks

JavaScript
Puzzle

Manipulación DOM

JavaScript
Puzzle

Promises

JavaScript
Test

Async / Await

JavaScript
Test

Eventos del DOM

JavaScript
Puzzle

Async / Await

JavaScript
Puzzle

Promises

JavaScript
Puzzle

Filtrado con filter() y find()

JavaScript
Código

Callbacks

JavaScript
Test

Creación de clases y objetos Restaurante

JavaScript
Código

Reducción con reduce()

JavaScript
Código

Filtrado con filter() y find()

JavaScript
Puzzle

Reducción con reduce()

JavaScript
Puzzle

Conjuntos con Set

JavaScript
Puzzle

Herencia de clases

JavaScript
Código

Eventos del DOM

JavaScript
Test

Clases y objetos

JavaScript
Puzzle

Modificación de elementos DOM

JavaScript
Puzzle

Mapas con Map

JavaScript
Puzzle

Funciones

JavaScript
Código

Tipos de datos

JavaScript
Test

Clases y objetos

JavaScript
Test

Array

JavaScript
Test

Conjuntos con Set

JavaScript
Test

Array

JavaScript
Puzzle

Encapsulación

JavaScript
Puzzle

Clases y objetos

JavaScript
Código

Uso de operadores

JavaScript
Puzzle

Uso de operadores

JavaScript
Test

Estructuras de control

JavaScript
Test

Excepciones

JavaScript
Test

Transformación con map()

JavaScript
Puzzle

Funciones flecha

JavaScript
Test

Selección de elementos DOM

JavaScript
Puzzle

Encapsulación

JavaScript
Test

Mapas con Map

JavaScript
Código

Creación y uso de variables

JavaScript
Puzzle

Polimorfismo

JavaScript
Puzzle

Tipos de datos

JavaScript
Puzzle

Estructuras de control

JavaScript
Puzzle

Todas las lecciones de JavaScript

Accede a todas las lecciones de JavaScript y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Certificados de superación de JavaScript

Supera todos los ejercicios de programación del curso de JavaScript y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.

En esta lección

Objetivos de aprendizaje de esta lección

  1. Comprender qué son las excepciones y por qué son importantes en JavaScript.
  2. Conocer la estructura try-catch-finally y cómo se utiliza para manejar excepciones.
  3. Entender la función de cada bloque (try, catch, finally) en el manejo de excepciones.
  4. Aprender a lanzar y capturar excepciones usando la palabra clave throw.
  5. Saber cómo utilizar múltiples bloques catch para manejar diferentes tipos de excepciones.
  6. Comprender la utilidad del bloque finally para ejecutar código que debe ejecutarse siempre, independientemente de si ocurrió una excepción o no.
  7. Aprender a personalizar los mensajes de error en las excepciones para brindar información más específica.
  8. Entender cómo el manejo adecuado de excepciones mejora la robustez y la legibilidad del código.