Intermediojavascript
Manejo de Errores
Controla errores con try/catch/finally, crea excepciones personalizadas y gestiona errores asincronos.
try / catch / finally
El bloque
try...catch captura excepciones y permite manejarlas de forma controlada. finally se ejecuta siempre.javascript
1function parsearJSON(texto) {
2 try {
3 const datos = JSON.parse(texto);
4 return datos;
5 } catch (error) {
6 console.error("JSON invalido:", error.message);
7 return null;
8 } finally {
9 console.log("Operacion de parseo finalizada");
10 }
11}
12
13parsearJSON('{"clave": "valor"}'); // OK
14parsearJSON("esto no es JSON"); // Error capturadoErrores personalizados
Puedes crear tus propias clases de error extendiendo
Error para errores mas descriptivos.javascript
1class ValidacionError extends Error {
2 constructor(campo, mensaje) {
3 super(mensaje);
4 this.name = "ValidacionError";
5 this.campo = campo;
6 }
7}
8
9function validarEdad(edad) {
10 if (typeof edad !== "number") {
11 throw new ValidacionError("edad", "Debe ser un numero");
12 }
13 if (edad < 0 || edad > 150) {
14 throw new ValidacionError("edad", "Fuera de rango");
15 }
16 return true;
17}
18
19try {
20 validarEdad("abc");
21} catch (e) {
22 console.log(`${e.name} en ${e.campo}: ${e.message}`);
23}Prueba lo aprendido
Escribe código JavaScript y ejecútalo directamente en el navegador.
Editor de Códigojavascript
1function parsearJSON(texto) {
2 try {
3 const datos = JSON.parse(texto);
4 return datos;
5 } catch (error) {
6 console.error("JSON invalido:", error.message);
7 return null;
8 } finally {
9 console.log("Operacion de parseo finalizada");
10 }
11}
12
13parsearJSON('{"clave": "valor"}'); // OK
14parsearJSON("esto no es JSON"); // Error capturado