Menu
Coddy logo textTech

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 des 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 lancer 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 lancera une exception
   counter = 1;
} catch (ArithmeticException e) {
   counter = 2;
} finally {
   counter = 3;
   // Ceci s'exécutera toujours
}

Après l'exécution du code ci-dessus, counter contient :

3

challenge icon

Défi

Facile

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

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

La méthode doit :

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

Aide-mémoire

Le bloc finally s'exécute après les blocs try-catch, indépendamment du fait qu'une exception se produise ou non. Il est utilisé pour les opérations de nettoyage.

Structure de base :

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

Exemple avec compteur :

int counter = 0;
try {
   int result = 10 / 0; // lève une exception
   counter = 1;
} catch (ArithmeticException e) {
   counter = 2;
} finally {
   counter = 3; // s'exécute toujours
}
// counter = 3

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