Adloun

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

Propagation et finally

Exceptions · niveau 2

Énoncé

Qu'affiche ce programme ?


static void c() {
    System.out.println("c");
    throw new IllegalStateException("panne");
}
static void b() {
    try {
        c();
        System.out.println("b après c");
    } finally {
        System.out.println("finally de b");
    }
}
static void a() {
    try {
        b();
    } catch (IllegalStateException e) {
        System.out.println("a rattrape : " + e.getMessage());
    }
    System.out.println("a continue");
}
public static void main(String[] args) {
    a();
    System.out.println("fin");
}

Corrigé


c
finally de b
a rattrape : panne
a continue
fin

L'exception levée dans c traverse b, qui n'a pas de catch : « b après c » n'est pas affiché, mais le finally de b s'exécute au passage. L'exception arrive dans a, qui la rattrape, puis a continue normalement, et main aussi.

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 →