Manejo de errores

Los errores van a pasar sí o sí: un dato mal escrito, una red que falla. La diferencia la hace qué pasa cuando ocurren.

Cuando JavaScript encuentra un error que nadie maneja, el script se detiene ahí mismo. Todo lo que venía después de esa línea no se ejecuta nunca.

try envuelve el código que podría fallar. Si algo dentro explota, catch lo atrapa —con el error como argumento— y el programa sigue vivo en vez de morir ahí.

No todos los errores vienen del navegador. Con throw puedes lanzar uno tú mismo cuando tu propia lógica detecta que algo no tiene sentido —por ejemplo, un dato que nunca debería ser negativo—.

La primera llamada funciona bien. La segunda entra al if, hace throw, y ese error viaja hasta el catch más cercano —da igual cuántas funciones haya en el medio—.

finally se ejecuta siempre, haya fallado algo o no. Sirve para cosas que tienen que pasar de todas formas —como ocultar un mensaje de "cargando"—.

try/catch para que un error no rompa todo el programa, throw para lanzar tus propios errores, y finally para lo que debe pasar sí o sí.

Con esto tus programas pueden fallar sin morir. Ya tienes todas las piezas del lenguaje: lo que sigue es usarlas para cosas más grandes.