QCM – Exercices Java - La gestion des exceptions - Q.C.M. Connaissances préalables Ce Q.C.M. doit être réalisé avant l’exploitation des exercices dédiés aux exceptions. Il vous permet de : vous assurer que vous maîtrisez les concepts liés à la gestion des exceptions. revoir éventuellement certaines parties du support de la série 4 « La gestion des exceptions » pour lever toute ambiguïté sur le sujet. NB : Pour certaines questions, plusieurs propositions peuvent convenir. Cochez alors les réponses que vous jugerez pertinentes. Questions réflexives préalables. A quoi servent les exceptions dans un programme Java ? Quels avantages procurent-elles au développeur et à l’application elle-même ? 1. En Java, pendant la phase de compilation, certaines exceptions : ☐peuvent être levées si elles sont surveillées. ☐peuvent être levées si elles sont non surveillées. ☐peuvent être levées si elles héritent de la classe Error. ☐peuvent être levées si elles sont issues de l‘API Java. ☐ne sont jamais levées pendant la compilation. ☐peuvent être levées quel que soit leur type. 2. Les exceptions dont la classe dérive de java.lang.Error représentent : ☐des exceptions surveillées. ☐des exceptions héritées de Throwable. ☐des exceptions déclenchées par la JVM. ☐des exceptions non surveillées. ☐souvent des erreurs liées à l’utilisation d’une classe. 3. En Java, les exceptions non surveillées : ☐ne peuvent pas être gérées par un try/catch. ☐peuvent hériter de la classe Error. ☐sont vérifiées par le compilateur. ☐héritent de la classe RuntimeException. ☐sont obligatoirement issues de l’API Java. ☐sont obligatoirement des classes codées par le développeur. 4. En Java, les exceptions surveillées : ☐héritent de la classe Error. ☐sont obligatoirement des classes codées par le développeur. ☐héritent de la classe RuntimeException. ☐héritent de la classe Exception mais pas de RuntimeException. ☐sont vérifiées par le compilateur. ☐sont obligatoirement capturées dans un bloc catch. AFPA / Mai 2014 QCM-Exercices Java-La gestion des exceptions Page 1/3 5. Les exceptions surveillées : ☐ contraignent impérativement le développeur à mettre en œuvre un bloc try/catch ou utiliser la clause throws. ☐imposent la mise en œuvre de la clause finally si la clause throws est mise en œuvre. ☐ concernent pour la plupart les opérations d’entrées/sorties (fichiers, réseau, accès base de données). ☐doivent faire l’objet de l’affichage et de l’enregistrement dans des fichiers de log. ☐ sont vérifiées préventivement par le compilateur pour produire des programmes plus robustes. 6. Le mot clé throw : ☐permet de déléguer à la méthode appelante la gestion de l’exception. ☐est utilisé uniquement pour les exceptions issues de classes codées par le développeur. ☐est suivi immédiatement par le nom d’une classe. ☐peut s’utiliser dans un constructeur. ☐est suivi par une instance d’exception qui peut être anonyme. ☐est suivi par une instance dérivée uniquement de la classe RuntimeException. ☐permet de capturer plusieurs types d’exception. 7. Le mot clé catch : ☐ne sert à attraper que des exceptions surveillées. ☐reçoit en paramètre que des exceptions surveillées de l’API Java. ☐peut apparaître plusieurs fois derrière un même bloc try. ☐peut contenir dans son bloc associé des instructions levant des exceptions. ☐plusieurs blocs catch consécutifs doivent impérativement respecter un certain ordre. 8. Quelles sont les contraintes à respecter lorsque dans le bloc d’une méthode le mot-clé throw est utilisé ? ☐aucune contrainte n’est imposée si l’exception déclenchée est non surveillée. ☐il faut obligatoirement faire apparaitre un bloc try/catch au sein de ce bloc. ☐ il faut obligatoirement faire apparaître la clause throws dans l’entête de la méthode que l’exception soit surveillée ou non. ☐il faut instancier une exception. ☐si l’exception est surveillée, il faut soit traiter localement l’exception, soit la transmettre à la méthode appelante. ☐aucune précaution à respecter si l’exception est issue d’une classe codée par le développeur. AFPA / Mai 2014 QCM-Exercices Java-La gestion des exceptions Page 2/3 9. Le mot-clé throws : ☐permet de lancer une exception surveillée ou non surveillée. ☐peut être précisé dans l’entête d’une méthode pour signaler une possible levée d’exception surveillée dans cette méthode. ☐peut être précisé dans l’entête d’une méthode pour signaler une possible levée d’exception non surveillée dans cette méthode. ☐peut être précisé dans l’entête d’une méthode peut indiquer à la méthode appelante que plusieurs catégories d’exception peuvent être levées. ☐permet de propager l’exception que l’auteur de la méthode ne souhaite pas traiter localement. 10. Question réflexive N1 : Aucune classe d’exception de l’API Java ne correspond aux exceptions que vous souhaitez déclencher. Quelle démarche mettez-vous en œuvre ? Quelle(s) méthode(s) doivent comporter vos classes d’exception ? Ecrivez sur une feuille libre le canevas type des classes mises en jeu . Dans un projet de l’IDE où rangez-vous vos classes d’exception ? 11. Réflexions concernant une instance de la classe Class . Que permet-elle ? Quel est le rôle de la méthode forName (String ) et quel type de données renvoie-t-elle ? Quel est le rôle du paramètre de type String reçu par forName(…) ? Quel est le rôle de la méthode newInstance() ? Peut-on appeler la méthode getClass() sur n’importe quelle instance ? Pourquoi ? AFPA / Mai 2014 QCM-Exercices Java-La gestion des exceptions Page 3/3 QCM-EXERCICES-JAVA-API-COLLECTIONS Copyright Chef de projet (responsable du produit de formation) PERRACHON Chantal, DIIP Neuilly-sur-Marne Ont participé à la conception COULARD Michel, CFPA Evry Ris-Orangis Réalisation technique COULARD Michel, CFPA Evry Ris-Orangis Crédit photographique/illustration Sans objet Reproduction interdite / Edition 2014 AFPA Mai 2014 Association nationale pour la Formation Professionnelle des Adultes 13 place du Général de Gaulle – 93108 Montreuil Cedex www.afpa.fr