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
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.