CSC 3101 – Algorithmique et langage de programmation

Portail informatique

Exceptions

Vous pouvez retrouver le jeu ici.

Quel mot clé permet de lever une exception ?
  1. throw
  2. throws
  3. try
  4. catch
throw.

Qu'affiche ce programme ?
  1. Rien
  2. Booom!
  3. Booom! Finally?
  4. 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 ?
  1. Booom!
  2. Booom! Miaou!
  3. Finally?
  4. 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 ?
  1. Rien
  2. Le message "Miaou! " et la pile d'exécution
  3. Exception...
  4. 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 ?
  1. Rien
  2. Le message "Miaou! " et la pile d'exécution
  3. Exception...
  4. 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()).