Partage
  • Partager sur Facebook
  • Partager sur Twitter

Java - Utilité du finally

    22 septembre 2014 à 14:28:14

    Bonjour !

    Petite question rapide : quel est l'interêt d'utiliser le "finally" dans un bloc try/catch ?

    		int i = 5, j = 0, k;
    		
    		try
    		{
    			k = i/j;
    		}
    		catch(ArithmeticException ex)
    		{
    			System.out.println("Exception levée");
    		}
    		finally
    		{
    			System.out.println("Message de fin");
    		}

    Ce code fait exactement la même chose que celui-ci :

    		int i = 5, j = 0, k;
    		
    		try
    		{
    			k = i/j;
    		}
    		catch(ArithmeticException ex)
    		{
    			System.out.println("Exception levée");
    		}
    		
    
    		System.out.println("Message de fin");

    Merci d'avance !

    • Partager sur Facebook
    • Partager sur Twitter
      22 septembre 2014 à 14:49:17

      Le code situé dans le finally sera exécuté dans tous les cas après le bloc try/catch, même si :
      • l'exception n'est pas catché : si ton exception n'est pas du bon type. Par exemple tu catch une IOException et qu'une RuntimeException est levée, tu ne rentreras pas dans ton catch.
      • une exception se produit dans ton catch : tu sortiras de ton catch et le code situé après la ligne qui lève l'exception ne sera pas exécuté.
      • Partager sur Facebook
      • Partager sur Twitter
      Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
        21 février 2017 à 10:44:57

        Un fois que tu es entré dans le try, le code du finally sera forcément exécuté, et ce même si tu met dans le try un return, un break ou continue (si le try est dans un for).

        -
        Edité par yairopro 16 mars 2017 à 13:58:34

        • Partager sur Facebook
        • Partager sur Twitter
          21 février 2017 à 14:21:13

          yairopro a écrit:

          Un fois que tu es entré dans le try, le code du finally sera forcément exécuté, et ce même si tu met un return, un break ou continue (si le try est dans un for) dans le try.


          :(
          • Partager sur Facebook
          • Partager sur Twitter
            16 mars 2017 à 13:56:23

            kulturman a écrit:

            yairopro a écrit:

            Un fois que tu es entré dans le try, le code du finally sera forcément exécuté, et ce même si tu met un return, un break ou continue (si le try est dans un for) dans le try.


            :(

            What?

            • Partager sur Facebook
            • Partager sur Twitter
              16 mars 2017 à 17:27:28

              L'interet du finally est surtout de fermer tout les streams qui auraient pu être ouverts, ainsi que terminer toutes les transactions dans le cadre de développement par transactions.
              • Partager sur Facebook
              • Partager sur Twitter

              Java - Utilité du finally

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown