1
2
Objet erreur généré par un programme java.
Java offre un mécanisme pour
attraper et traiter les exceptions.
Dissocier la gestion des anomalies du reste du code
Dans la figure ci-dessous les objets Error ne peuvent ni être attrapés ni traités
3
On distingue deux catégories d’exceptions sous java:
Les exceptions surveillées : elles doivent absolument être traitées par le
programmeur. Elles sont signalées par le compilateur.
Les exceptions non surveillées: le traitement de ces exception reste un choix du
programmeur.
Exemple : considérons le programme suivant :
4
L'exception se propage depuis l'endroit où elle est levée, elle remonte
d'appelant en appelant en s'arrêtant à chaque gestionnaire d'exceptions
qu'elle rencontre dans la remontée
Supposons que la méthode calcul est celle qui contient l’opération de division
par zéro
5
une exception est un objet qui est instancié lors d’un incident : on dit qu’une exception est levée.
Capturer l’exception: empêche la propagation de l’exception ce qui empêche l’arrêt du programme et prévoit un
traitement de l’erreur.
Afin de capturer les exceptions java offre deux blocs d’instruction try{} et catch(){}.
Syntaxe:
try{
//code qui peut générer des exception
}
catch( TypeException1 e){
//code exécuté si une Exception1 est lancée
}
catch( TypeException2 e){
//code exécuté si une Exception2 est lancée
}
finally{
//code tout le temps exécuté à la fin
}
6
Exemple
Résultat??
7
Dans le bloc catch il est possible d’utiliser les méthodes prédéfinie dans la
classe exception comme
getMessage() retourne le message d’erreur s’il existe.
toString() retourne la classe à l'origine de l'exception.
Exemple:
8
Java permet aussi la création de nouvelles exceptions via l’instruction throws
suivie par la création d’un nouvel objet d’un type d’exception..
Exemple:
Lancer une exception si la date de naissance de la personne est supérieur à la date
système.
Pour ce faire il faut d’abord créer une classe exception qui hérite de la classe
Exception
Ensuite dans le constructeur de la classe Personne il faut signaler que la méthode
peut lever ou propager une exception (throws) (car on souhaite faire teste)
Finalement lever l’exception une fois la condition vérifiée.
9
10
Ainsi dans la méthode main:
11