Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

90
Vistas
¿Cuál es el punto de finalmente en un intento... atrapar?

¿Hay alguna razón para poner el código en un bloque finally en lugar de simplemente tener el código después de la instrucción try...catch ? Seguramente en ambos casos el código se ejecuta de todos modos.

 try {
 something();
} catch (error) {
 error_handling_with(error);
}
// code here gets executed whether in finally clause or not.
finally_something();

¿Hay algún lugar donde finally sea esencial después de try...catch ? Puedo ver que tiene un uso en Promises, pero no aquí.

almost 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

finally , básicamente se ejecuta incluso si tiene un retorno anticipado de try-catch o incluso si no maneja el error en try-catch . Aquí hay un ejemplo que me gusta:

 function myFunction() {
 try {
 console.log('inside "try"');
 return
 } finally {
 console.log('inside "finally"');
 }

 console.log("after try-finally");
}

myFunction()

Cuando ejecute myFunction() , imprimirá lo siguiente:

 inside "try"
inside "finally"

Desde que regresó de try , no ejecutó ninguna instrucción después del bloque try-finally . Pero, Javascript ejecutó el bloque finally .

almost 4 years ago · Santiago Trujillo Denunciar

0

Creo que ha recibido la respuesta técnica correcta para esto. Sin embargo, si está solicitando un uso práctico, una situación es cuando desea cerrar una conexión en cualquier caso. Aquí hay un pseudocódigo para explicar:

 openConnection();

try {
 DoSomething();
 return;
} catch (anomaly) {
 handleAnomaly();
} finally {
 closeConnection();
}

Vea en el caso anterior, usted cierra la conexión en todos los casos, ya sea que haya una excepción manejada, una excepción no manejada o un flujo feliz, su conexión se cerrará y eso también sin duplicación de código.

almost 4 years ago · Santiago Trujillo Denunciar

0

Catch/Finally son opcionales, la única regla es que siempre debe existir 1 de ellos.

Finalmente existe para que el código siempre se pueda ejecutar, sin importar si se detectó o no un error.

Yo diría que en algunos casos se agregan cuando no son necesarios, pero ayuda a la legibilidad, en otros casos podría ser solo un hábito.

almost 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda