Menu
CoddyTech

Bloc finally

Fait partie de la section Logique & Flux du Journey Java de Coddy. Leçon 41 sur 59.

Le bloc finally contient du code qui sera exécuté après les blocs try-catch, qu’une exception se produise ou non. Il est couramment utilisé pour les opérations de nettoyage, comme la fermeture de fichiers ou de connexions à une base de données.

Voici la structure de base d’un bloc try-catch-finally :

try {
   // Code qui pourrait lever une exception
} catch (ExceptionType e) {
   // Code pour gérer l'exception
} finally {
   // Code qui s'exécute toujours
}

Voyons un exemple avec un compteur :

int counter = 0;
try {
   int result = 10 / 0;
   // Ceci va lever une exception
   counter = 1;
} catch (ArithmeticException e) {
   counter = 2;
} finally {
   counter = 3;
   // Ceci s'exécutera toujours
}

Après avoir exécuté le code ci-dessus, counter contient :

3

Le type entre les parenthèses de catch détermine les erreurs que ce bloc gère. Deux types courants sont ArithmeticException, déclenchée par une division entière par zéro, et NumberFormatException, déclenchée par Integer.parseInt() lorsque le texte n’est pas un nombre. Un seul catch peut gérer plusieurs types à la fois :

try {
   int value = Integer.parseInt(text);
   int result = 10 / value;
} catch (ArithmeticException | NumberFormatException e) {
   // gère les deux
} finally {
   // s'exécute toujours
}

Intercepter Exception est plus général : cela gère ces deux exceptions ainsi que toute autre exception.

challenge icon

Défi

Facile

Créez une méthode nommée processNumber qui prend deux arguments :

  1. Un String (number) à convertir en entier
  2. Un booléen (shouldThrow) qui détermine si une exception doit être levée

La méthode doit :

  1. Initialiser une variable de résultat à 0
  2. Dans le bloc try :
    • Si shouldThrow vaut true, diviser 10 par 0
    • Sinon, convertir la chaîne number en entier et la stocker dans result
  3. Dans le bloc catch : définir result sur -1
  4. Dans le bloc finally : ajouter 100 à result
  5. Retourner result sous forme de chaîne

Essayez vous-même

import java.util.Scanner;

public class Main {
    public static String processNumber(String number, boolean shouldThrow) {
        // Écrivez votre code ici
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String number = scanner.nextLine();
        boolean shouldThrow = Boolean.parseBoolean(scanner.nextLine());
        
        System.out.println(processNumber(number, shouldThrow));
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur Java en ligne