Sem 6 MOOC II Gestion des Exceptions
comment rassemble le mécanisme de gestion d'erreurs?
1. prévoir un lieu où une erreur pourra être produite 2. désigner une place où cette erreur va être au moins partiellement gérée (elle va être attrapée) 3. si un tel objet "lancé" n'est pas attrapé du tout, alors cela provoque l'arrêt du programme
quel effet a tout ça sur la programme?
améliore sa robustesse
les exceptions permettent de...
anticiper les erreurs qui peuvent potentiellement se produite lors de l'execution d'une portion de code
qu'est-ce que c'est q'un "exception"?, donnée que le syntaxe de lancer un exception est: throw new Exception()
c'est un objet du type Exception, qui est "lancé" au reste du programme pour être "attrapé"
depuis Java 7, on a le multi
catch = catch(Exception 1 | Exception 2 | ... | Exception n)
dans quelle ordre ordonner les catch{}?
de la plus spécifique à la plus générale
la sous-classe Error sert à indiquer des erreurs
fatales, qui ne sont pas censés à être gérées par les programmeurs (donc pas try catch)
les types des Exceptions sont
1. Checked Exceptions - doivent être traitées par les programmeurs et indiquent des circonstances exceptionnelles 2. Unchecked Exceptions - le traitement n'est pas forcement vérifié par le programmeur, indiquent des erreurs évitables par la bonne programmation À noter que touts les deux types des Exceptions permissent l'utilisation de try{} catch{}
quelles sont les 4 tâches élémentaires du processus du gestion des erreurs?
1. signaler un erreur 2. marquer les endroits réceptifs aux erreurs 3. leur associer (à chaque endroit réceptif) un moyen de gérer les erreurs qui se présentent 4. éventuellement, "faire de ménage" après un bloc réceptif aux erreurs en syntaxe Java, les mots correspondants sont: 1. throw 2. try 3. catch 4. finally (optionel: indique quoi faire après un bloc réceptif)
la classe Throwable à combien et quels constructeurs?
deux, un par défaut et un permettant le passage d'un String message avec le lancement d'erreur À noter qu'elle a deux méthodes notables: - getMessage() - permet de récupérer le message d'erreur - printStackTrace() - Afficher sur le terminal la "pile d'appel"
en Java, toute exception, qui n'est pas un RuntimeException ou Error doit respecter
la règle "déclarer ou traiter" Donc, toute exception qui n'est pas une erreur ou une RuntimeException, doivent soit (donc checked exceptions) - être traitées dans la méthode qui les lance - être déclarées par le méthode sinon, le compilateur vas émettre une erreur
l'instruction "throw" va quitter...
le cours normale d'execution du programme et va sauter soit au prochain bloc directement lié au bloc try{}, soit va provoquer la termination du programme en terminant par une exception
en aucun cas l'exécution ne reprend après
le throw
en l'absence du bloc finally, si un bloc catch est exécuté, le déroulement continue ensuite
normalement après ce bloc catch
le déclencher d'une exception permet de
prévoir une erreur à un endroit et à la gérer à un autre endroit
chaque bloc try{} possède
son/ses catch{} associés
exception est un type d'exception controlé par le compilateur ("checked")
vrai
les RuntimeExceptions ne sont pas soumis à la règle "traiter ou déclarer"
vrai
une erreur n'est pas généralement rattrapée par le programmeur
vrai
on peut étendre la classe Exception pour créer nos propres exceptions
vrai Dans ce cas, pour garder le méthode .getTitle(), on redeclare les constructeurs par super("Message par défaut") ou super(message)
la sous-classe Exception doit/peut
être traitée par les programmeurs