JavaScript Errores - throw, try y catch


tryLa declaración prueba errores en un bloque de código.

catchLa declaración maneja errores.

throwLa declaración crea errores personalizados.

finallyLa declaración, después de las declaraciones try y catch, se ejecuta independientemente de si se produjo una excepción.


Errores de JavaScript

Cuando el motor de JavaScript ejecuta código JavaScript, pueden ocurrir varios errores.

Pueden ser errores de sintaxis, normalmente errores de codificación o erratas causados por el programador.

Pueden ser errores tipográficos o funciones que faltan en el lenguaje (posiblemente debido a diferencias entre navegadores).

Pueden ser errores debidos a una salida incorrecta del servidor o del usuario.

Por supuesto, también pueden deberse a muchos otros factores impredecibles.


Lanzar (throw) errores en JavaScript

Cuando se produce un error, cuando algo sale mal, el motor de JavaScript normalmente se detiene y genera un mensaje de error.

El término técnico para describir esta situación es: JavaScript va alanzarun error.


try y catch en JavaScript

tryLa declaración try nos permite definir un bloque de código para probar errores durante su ejecución.

catchLa declaración catch nos permite definir un bloque de código que se ejecuta cuando se produce un error en el bloque try.

Las declaraciones de JavaScripttryycatchaparecen en pares.

Sintaxis

try { ... //Lanzamiento de la excepción } catch(e) { ... //Captura y manejo de la excepción } finally { ... //Fin del procesamiento }

Ejemplos

En el siguiente ejemplo, escribimos deliberadamente una errata en el código del bloque try.

El bloque catch capturará el error del bloque try y ejecutará código para manejarlo.

Ejemplos

var txt=""; function message() { try { adddlert("Welcome guest!"); } catch(err) { txt="Esta página tiene un error.\n\n"; txt+="Descripción del error:" + err.message + "\n\n"; txt+="Haga clic en Aceptar para continuar.\n\n"; alert(txt); } }

Pruébelo »

La declaración finally

La declaración finally ejecutará ese bloque de código independientemente de si se produjo una excepción en try y catch.

Ejemplos

function myFunction() { //Obtener el elemento const messageElement = document.getElementById("p01"); const inputElement = document.getElementById("demo"); //Limpiar el mensaje anterior messageElement.innerHTML = ""; //Obtener el valor de entrada y eliminar los espacios al inicio y al final const rawValue = inputElement.value.trim(); try { //1. Verificar si está vacío if (rawValue === "") { throw new Error("La entrada no puede estar vacía; por favor, ingrese un número."); } //2. Verificar si es un número válido if (isNaN(rawValue)) { throw new Error("Por favor, ingrese un número válido (por ejemplo: 5, 10.5, -3)"); } //Convertir a número const x = Number(rawValue); //3. Verificar si es un entero (se puede ajustar según sea necesario) if (!Number.isInteger(x)) { throw new Error("Por favor, ingrese un entero (no se admiten decimales)"); } //4. Verificar el rango del número (se puede ajustar según sea necesario) if (x > 10) { throw new Error(`El número ${x}es demasiado grande, por favor ingrese5-10un número entre`); } if (x < 5) { throw new Error(`El número ${x}es demasiado pequeño, por favor ingrese5-10un número entre`); } //5. Verificar el caso especial de números negativos if (x < 0) { throw new Error("Por favor, ingrese un número positivo (no se admiten negativos)"); } //Todas las validaciones pasaron messageElement.innerHTML= `¡Validación exitosa! El número que ingresó es: ${x}`; messageElement.style.color = "green"; //Se pueden ejecutar otras operaciones en caso de éxito console.log(`El usuario ingresó un número válido: ${x}`); } catch (err) { //Mostrar mensaje de error messageElement.innerHTML= `Error: ${err.message}`; messageElement.style.color = "red"; //Opcional: registrar el error en la consola console.error("Fallo de validación de entrada:", err.message); } finally { //Independientemente de si tiene éxito o falla, limpiar el campo de entrada inputElement.value = ""; //Opcional: volver a enfocar el campo de entrada para que el usuario pueda volver a ingresar fácilmente inputElement.focus(); } }



La declaración Throw

La declaración throw nos permite crear errores personalizados.

El término técnico correcto es: crear olanzar una excepción(exception)。

Si usa throw junto con try y catch, puede controlar el flujo del programa y generar mensajes de error personalizados.

Sintaxis

throw exception

La excepción puede ser una cadena, un número, un valor booleano o un objeto de JavaScript.

Ejemplos

Este ejemplo comprueba el valor de una variable de entrada. Si el valor es incorrecto, se lanza una excepción (error). catch capturará este error y mostrará un mensaje de error personalizado:

Ejemplos

function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "El valor está vacío"; if(isNaN(x)) throw "No es un número"; x = Number(x); if(x < 5) throw "Demasiado pequeño"; if(x > 10) throw "Demasiado grande"; } catch(err) { message.innerHTML = "Error:" + err; } }

Pruébelo »

Tenga en cuenta que si la función getElementById falla, el ejemplo anterior también lanzará un error.

Otras extensiones