IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Interet bloc Finally [FAQ]


Sujet :

Langage Java

  1. #1
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut Interet bloc Finally
    Salut

    Quel est l'interet du bloc Finally en Java ?

    thx @+

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    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++

  3. #3
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    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 ?

  4. #4
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par Seth77
    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 !
    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...

  5. #5
    Membre averti
    Inscrit en
    Août 2003
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 32
    Par défaut
    Citation Envoyé par ®om
    Non, pas si le finally est après le return !
    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é.

  6. #6
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par Didier 69
    Attention, avec un return dans le bloc try/catch, le finally est également exécuté.
    Oui, exact, j'ai justement testé ça ce matin entre 2 amphis...

  7. #7
    Membre éprouvé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Par défaut
    Citation Envoyé par Seth77
    OK donc on passe TOUJOURS dans le bloc finally ....
    Sauf si on éteind brutalement l'ordi, si on kill la JVM, ou si on a une outOfMemoryError.
    C'est important de le préciser

  8. #8
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Satch
    ou si on a une outOfMemoryError.
    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 :

    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...");
            }
    Ceci affichera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Et finallement...
    Exception in thread "main" java.lang.OutOfMemoryError: Requested array size exceeds VM limit
    Le bloc finally est bien exécuté AVANT que l'exception ne soit remonté

    a++

Discussions similaires

  1. Réponses: 20
    Dernier message: 30/08/2012, 11h35
  2. Le bloc finally
    Par allouchi dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 29/06/2012, 20h29
  3. interet de final pour une variable static
    Par john123 dans le forum Langage
    Réponses: 6
    Dernier message: 24/03/2011, 11h36
  4. Réponses: 6
    Dernier message: 25/10/2006, 11h22
  5. [FINAL][PARAMETRE] Interet?
    Par fabszn dans le forum Langage
    Réponses: 16
    Dernier message: 10/03/2006, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo