AnyCompiler

Manejo de Excepciones (try/catch)

Cuando algo sale mal — analizar JSON inválido, llamar a un método que no existe — JavaScript lanza un error. Si no se captura, eso hace que tu programa se caiga. try/catch te permite capturarlo y decidir qué pasa en su lugar.

try {
  const result = JSON.parse("not valid json");
} catch (error) {
  console.log("Could not parse JSON!");
}
Output
Could not parse JSON!

JavaScript intenta ejecutar el código dentro de try. En el momento en que JSON.parse() lanza un error, salta directamente al bloque catch en vez de caerse — el programa sigue ejecutándose con normalidad después de eso.

Acceder al error real, y finally

catch (error) te permite acceder al objeto de error real — útil para registrar logs o mostrar un mensaje real en vez de uno genérico. finally se ejecuta pase lo que pase — se haya lanzado un error o no — lo que lo convierte en el lugar adecuado para el código de limpieza.

try {
  const result = JSON.parse("not valid json");
} catch (error) {
  console.log(`Error: ${error.message}`);
} finally {
  console.log("This always runs");
}
Output
Error: Unexpected token o in JSON at position 1
This always runs

Ese mensaje de error vino del motor real de JavaScript, no es algo escrito para parecer plausible — esto es genuinamente lo que verás si ejecutas este mismo código.

Siguiente: clases — agrupar datos junto con las funciones que trabajan sobre ellos.

Ejercicio de práctica

Intenta analizar el string "abc" como JSON con JSON.parse(), captura el error, e imprime "Not valid JSON" en vez de que se caiga.