DICCIONARIO DE INFORMÁTICA Y TECNOLOGÍA
  ¿Qué significa bloque finally? - Información sobre bloque finally

Definición de bloque finally (programación)

Leandro Alegsa (Contacto) 2018-07-30

Envíanos un mensaje


Enviar
Anuncios

Un bloque finally se refiere a un bloque de instrucciones que siempre se ejecutan, independientemente de eventos inesperados o excepciones que puedan ocurrir durante la ejecución de una aplicación.

Se usa opcionalmente con el bloque "try / catch" y garantiza la ejecución de cualquier código que deba ejecutarse antes de salir del bloque "try", independientemente del éxito o fracaso de la ejecución de la aplicación.

El bloque finally siempre se ejecuta cuando sale el bloque try. Esto asegura que el bloque finally se ejecuta incluso si ocurre una excepción inesperada. Pero finally es útil para algo más que el manejo de excepciones: permite que el programador evite que el código de limpieza sea anulado accidentalmente por un return, continue o break. Poner el código de limpieza en un bloque finally es siempre una buena práctica, incluso cuando no se prevén excepciones.

El bloque finally es una herramienta clave para evitar fugas de recursos. Cuando cierre un archivo o recupere recursos, coloque el código en un bloque finally para garantizar que el recurso siempre se recupere.

En JAVA, considere usar la declaración try-with-resources en estas situaciones, que libera automáticamente los recursos del sistema cuando ya no los necesita.


Ejemplo en JAVA

El siguiente bloque finally para el método writeList limpia y luego cierra el PrintWriter.

finally {
if (out! = null) {
System.out.println ("Cerrando PrintWriter");
out.close ();
} else {
System.out.println ("PrintWriter no abierto");
}
}



Objetivos del bloque finally

La ejecución de un bloque finally tiene como objetivo liberar recursos, como las conexiones de bases de datos, que generalmente están disponibles en cantidades limitadas. Mediante este mecanismo, la eliminación de los recursos ocurre antes que la operación de finalización del recolector de basura, optimizando así la memoria.

El código en el bloque finally puede emplearse para manejar excepciones tan pronto como ocurran, limpiar la memoria asignada en el bloque "try" o eliminar los objetos que contienen recursos externos (como manejadores de archivos) usados ​​en el bloque "try". Un bloque finally también facilita la realización de tareas domésticas, como restablecer el cursor a un estado normal antes del momento de una excepción.

En general, el código dentro de un bloque finally se ejecuta cuando el control sale de un bloque try como resultado de la ejecución normal, como resultado de la ejecución de una sentencia "break", "goto", "continue" o "return" o debido a una excepción de la declaración try.

Siempre que se produce una excepción en el bloque try, el control pasa desde la línea que causó la excepción al bloque catch más cercano (manejador de excepciones) y luego al bloque finally. Además, cuando se vuelve a lanzar una excepción en un bloque catch, el control se transfiere al bloque finally. Por lo tanto, se omitirá el código que sigue a la línea donde ocurrió la excepción.

Las excepciones no deben arrojarse explícitamente en un bloque finally. Si se produce una excepción durante la ejecución de un bloque finally, cualquier código posterior al punto donde se lanza la excepción no se ejecutará, y la excepción se propagará al bloque try externo que lo rodea. Si el bloque finally ya está manejando otra excepción, esto da como resultado la finalización del procesamiento de la excepción actual.

Se debe tener cuidado de no transferir explícitamente la ejecución dentro o fuera de un bloque finally ya que esta no es una transferencia válida.





¿Mejoramos la definición?
Puntos: 0 (0 votos)







Respondemos tus consultas o comentarios a continuación:


¿Dudas? ¿necesita más información? Escriba y responderemos a tu email: clic aquí



 




  Diccionario de informática
  Búsqueda por letras:

A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z - 0,9
 
Búsqueda por categorías
:

Almacenamiento - Aplicaciones - Audio - Compresión - Desarrollo web - Discos ópticos - Inteligencia Artificial - Memorias - Microprocesadores - Seguridad informática - Sistemas de archivos - Terminología de programación - UNIX - Windows - ver categorías

 
Búsqueda por palabras:






Preguntas

No hay ningún comentario todavía

Todos los derechos reservados © 1998 - 2018 - ALEGSA - Santa Fe, Argentina.
Políticas del sitio web - Contacto - Publicidad