Java - Utilidad del Finally

 
Vista:

Utilidad del Finally

Publicado por jacko (9 intervenciones) el 17/10/2001 17:58:22
Hola, me gustaria saber q utilidad tiene realmente la sentencia Finally del manejo de errores en Java, pq sinceramente, por lo q he visto, meter un trozo de código en un finally equivale a no meterlo en ningun sitio, pq al fin y al cabo es código q se va a ejecutar de todas formas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Utilidad del Finally

Publicado por Antonio (51 intervenciones) el 17/10/2001 20:02:53
El finally es una instrucción muy útil para algunos casos. Por ejemplo, si accedes a una base de datos para recoger los datos de una consulta harias algo asi:
try
{
creo el Statement con el que hago la consulta.
ejecuto la consulta.
meto los datos en un resulset
leo el resulset
cierro el resulset
cierro el statement
}
catch (SQLException e)
{
instrucciones para controlar la excepcion
}

En este caso, si se da una sqlexception puede, por ejemplo, que el objeto Statement no se cierre, y la base de datos mantiene esa comunicación abierta porque el programa java nunca la cerrará ya que ha dado error. Y las bases de datos pueden tener un número limitado de comunicaciones con programas abiertas simultaneamente.
Pues seria interesante poner el cierre del Statement no en el try sino en un finally, para que siempre se ejecute, aqunque se de una excepción, ya que las lineas posteriores a la que ha producido la excepcion nunca se ejecutan.
Resumiendo: En un finally se debe poner aquello que siempre se deba ejecutar halla ido bien el programa o no.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Utilidad del Finally

Publicado por Paco (1 intervención) el 18/10/2001 19:26:27
Pero ese código q metemos en el finally no podemos meterlo directamente dentro del programa normal, es decir, fuera del try y del catch, justo a continuacion de esa ultima sentencia?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Utilidad del Finally

Publicado por Jon (68 intervenciones) el 18/10/2001 22:41:39
La diferencia fundamental es que el código del finally siempre se ejecuta, mientras que el código que metemos a continuación puede no llegarse a ejecutar.

Ejemplos en los que el código de después puede no ejecutarse:
- En el bloque try se lanza una excepción no controlada en los catch.
- En el bloque try se encuentra una instrucción return (el código en el bloque finally se ejecutaría antes de hacer el return)

Quizás haya más casos pero ahora no se me ocurren.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Utilidad del Finally

Publicado por Francisco (1 intervención) el 28/07/2008 22:45:47
Cual es la utilidad de la palabra finally en plataforma de java
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar