Exceptions vérifiées ou non vérifiées
La hiérarchie Throwable de Java (Error, Exception, RuntimeException), la règle attraper ou déclarer, la clause throws et le choix du type quand on écrit sa propre exception.
- 26 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Mises en situation
- Comprendre
Quelques cartes du deck
Exception vérifiée : de quoi s'agit-il ?
Voir la réponse
Exception que le compilateur oblige à traiter : tout appel qui peut la lever doit être entouré d'un catch compatible ou la déclarer dans la signature.
C'est toute sous-classe de
Exceptionqui n'est pas uneRuntimeException:IOException,SQLException,InterruptedException. Sans traitement, javac refuse le code.javac refuse ce code avec
unreported exception FileNotFoundException; must be caught or declared to be thrown. Quelle correction est valide, sans modifier la signature deopen?
```java
static void open() {
new FileReader("a.txt");
}`- Entourer l'appel d'un
tryaveccatch (FileNotFoundException e) - Écrire
throwdevantnew FileReader("a.txt") - Entourer l'appel d'un
tryaveccatch (RuntimeException e) - Déclarer
throws IOExceptionsurmain, qui appelleopen
Voir la réponse
Entourer l'appel d'un
tryaveccatch (FileNotFoundException e)Le
catchdoit viserFileNotFoundExceptionou l'un de ses parents vérifiés (IOException,Exception).RuntimeExceptionn'en fait pas partie, etthrowlève une exception au lieu d'en traiter une.- Entourer l'appel d'un
RuntimeExceptionet ses sous-classes sont … ; les autres sous-classes deException, commeIOException, sont ….Voir la réponse
RuntimeExceptionet ses sous-classes sont non vérifiées ; les autres sous-classes deException, commeIOException, sont vérifiées.La frontière passe par
RuntimeException: c'est elle, et nonException, qui marque les exceptions que le compilateur ne contrôle pas.Exception non vérifiée : de quoi s'agit-il ?
Voir la réponse
Exception dont le traitement n'est pas imposé par le compilateur :
RuntimeExceptionet ses sous-classes, ainsi queErroret les siennes.NullPointerException,ArithmeticExceptionouIllegalArgumentExceptionpeuvent surgir presque partout : les traiter à chaque appel noierait le code. On corrige plutôt le bogue.Une méthode charge un fichier de configuration. S'il manque, l'appelant peut proposer un autre chemin. Quel type d'exception écrire pour ce cas ?
- Une classe qui étend
Error, puisque le fichier se trouve en dehors du programme lui-même - Une exception non vérifiée, car en pratique aucun appelant n'écrira de bloc
trypour elle - Une exception vérifiée, qui étend
Exception: l'appelant peut réagir et le compilateur l'y oblige - Une
RuntimeException, parce que les fichiers ne se lisent qu'au moment de l'exécution du programme
Voir la réponse
Une exception vérifiée, qui étend
Exception: l'appelant peut réagir et le compilateur l'y obligeOn choisit vérifiée quand l'appelant peut raisonnablement récupérer. Pour un bogue de l'appelant (un argument négatif, une référence nulle), on lève plutôt une exception non vérifiée comme
IllegalArgumentException.Errorest réservée à la machine virtuelle.- Une classe qui étend