Cuando algo falla
Hay operaciones que pueden fallar: leer un dato que no existe, convertir un
texto a número, dividir por cero de forma inválida... Si no lo controlas, un
error detiene la ejecución del programa. Para manejarlo de forma controlada
se usa el bloque try...catch.
try {
// código que puede fallar
const datos = JSON.parse("esto no es JSON");
} catch (error) {
// se ejecuta solo si hubo un error
console.log("Algo salió mal:", error.message);
}
- El bloque
trycontiene el código "arriesgado". - Si se lanza un error, se salta al bloque
catch, que recibe el objeto de error. - Si no hay error,
catchse ignora por completo.
El bloque finally
Es opcional y se ejecuta siempre, haya error o no. Sirve para tareas de limpieza (cerrar conexiones, ocultar un indicador de carga...):
try {
hacerAlgo();
} catch (error) {
console.log("Error:", error.message);
} finally {
console.log("Esto se ejecuta pase lo que pase");
}
Ejemplos
Capturar un error y continuar
function parsear(texto) {
try {
return JSON.parse(texto);
} catch (error) {
console.log("JSON inválido:", error.message);
return null;
}
}
console.log(parsear('{"ok":true}'));
console.log(parsear("no es json"));