Adloun

programmation Java (école d'ingénieur) · Chapitre 11 · Exercice de TD

finally et return

Exceptions · niveau 1 (application)

Énoncé

Qu'affiche le programme suivant ?


static int f(int x) {
    try {
        System.out.println("try " + x);
        if (x == 0) throw new IllegalArgumentException("zéro");
        return 10 / x;
    } catch (IllegalArgumentException e) {
        System.out.println("catch " + e.getMessage());
        return -1;
    } finally {
        System.out.println("finally " + x);
    }
}

public static void main(String[] args) {
    System.out.println("résultat " + f(5));
    System.out.println("résultat " + f(0));
}

Corrigé


try 5
finally 5
résultat 2
try 0
catch zéro
finally 0
résultat -1

Pour , l'instruction return 10 / x; calcule la valeur , mais avant que la méthode ne rende la main, le bloc finally s'exécute : « finally 5 » s'affiche avant « résultat 2 ». Pour , l'exception est rattrapée, le catch prépare la valeur , puis finally s'exécute encore. Le bloc finally passe donc même devant un return.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →