Salut
Quel est l'interet du bloc Finally en Java ?
thx @+
Salut
Quel est l'interet du bloc Finally en Java ?
thx @+
Salut,
Le bloc finally permet d'exécuter un traitement à la fin d'un autre quoi qu'il arrive (exception ou return). Cela permet par exemple de fermer les flux : http://www.developpez.net/forums/sho...4&postcount=69
a++
OK donc on passe TOUJOURS dans le bloc finally ....
Et quand il y a plusieurs bloc finally ... on passe dans tous les bloc meme quand il y a un return qqpart ?
Non, pas si le finally est après le return !Envoyé par Seth77
C'est juste si t'as une exception levée dans le bloc try/finally, ça passe par finally... Mais si y'a un return dans le bloc, ça return... Mais par contre, si le bloc se passe bien, ça exécute finally aussi...
Attention, avec un return dans le bloc try/catch, le finally est également exécuté.Envoyé par ®om
Oui, exact, j'ai justement testé ça ce matin entre 2 amphis...Envoyé par Didier 69
Sauf si on éteind brutalement l'ordi, si on kill la JVM, ou si on a une outOfMemoryError.Envoyé par Seth77
C'est important de le préciser![]()
Les Errors sont des Throwables comme les Exceptions, et remontent donc par le même procédé. Donc le OutOfMemoryError ne t'empêchera pas de passer par le finally :Envoyé par Satch
Ceci affichera :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 try { Object[] o = new Object[Integer.MAX_VALUE]; // OutOfMemoryError } finally { System.out.println("Et finallement..."); }
Le bloc finally est bien exécuté AVANT que l'exception ne soit remonté
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2Et finallement... Exception in thread "main" java.lang.OutOfMemoryError: Requested array size exceeds VM limit
a++
Partager