Exceptions
Vous pouvez retrouver le jeu
ici.
Quel mot clé permet de lever une exception ?
- throw
- throws
- try
- catch
throw.
Qu'affiche ce programme ?
- Rien
- Booom!
- Booom! Finally?
- Boom! Exceptions... Finally?
Booom! Finally? L'exception jetée dans le bloc try/catch est de type
Booom. Cette exception est attrapée par le catch(Booom e)
ce qui engendre l'affichage de Booom!. Ensuite, le programme se poursuit avec l'exécution
du bloc finally (seul le premier filtre d'exception qui correspond est exécuté).
Qu'affiche ce programme ?
- Booom!
- Booom! Miaou!
- Finally?
- Boom! Miaou! Finally?
Finally? Aucune exception n'est levée par le programme (le throws Booom indique
que boom() peut potentiellement lever une exception, mais aucune exception
n'est levée par cette méthode).
Au résultat, seul le bloc finally est exécuté.
Qu'affiche ce programme ?
- Rien
- Le message "Miaou! " et la pile d'exécution
- Exception...
- Miaou!
Exception... La méthode f(), invoquée à partir du bloc try/catch
de la méthode main, lève une exception de type Booom.
Comme Booom hérite de Exception, l'exception est attrapée par
le bloc catch(Exception e).
Qu'affiche ce programme ?
- Rien
- Le message "Miaou! " et la pile d'exécution
- Exception...
- Miaou!
Le message "Miaou! " et la pile d'exécution. Comme à la question précédente, l'exception
de type Booom levée par la méthode f() est attrapée par
le bloc catch(Exception e). Ce bloc lève de nouveau l'exception qui n'est pas attrapée
puisque le bloc catch(Exception e) ne se trouve pas à l'intérieur
d'un bloc try/catch. L'exception fait donc quitter la méthode main
et est attrapée par la machine virtuelle Java qui affiche le message associé à l'exception ("Miaou! ")
et la pile d'exécution au moment de l'instanciation de l'exception (au moment
du new dans throw new Booom("Miaou! ") dans f()).