Cours programmation Java
Nissaf Fredj
[email protected]
Exceptions en Java
22
Définition
Les exceptions représentent le mécanisme de gestion des erreurs.
Il se compose d’objets représentant les erreurs et d’un ensemble de
mots clés qui permettent de détecter et de traiter ces erreurs.
Détecter les erreurs: try, catch et finally
Lever ou propager les erreurs : throw et throws
Lors de la détection d’une erreur, un objet qui hérite de la classe Exception
est créé .
on dit qu’une exception est levée et propagé à travers la
pile d’exécution jusqu'à ce qu'il soit traité.
Nissaf Fredj
Exceptions en Java
33
Erreur à la compilation
On obtient un erreur de compilation si on essayer pas de capturer
l’exception avec try/catch, ou ajouter le mot clé throws dans la déclaration
du bloc.
Nissaf Fredj
Exceptions en Java
44 Trois types d’exceptions
Throwable c’est la classe de base pour le traitement des erreurs.
Error correspondent à des exceptions qu’il est rare d’attraper.
RuntimeException correspondent à des exceptions que l’on peut rattraper.
Exception que l’on est obligé d’attraper (try/catch/throws).
Nissaf Fredj
Exceptions en Java
55
Classe Throwable
Les principales méthodes de la classe Throwable sont:
Méthodes Rôle
String getMessage() lecture du message
affiche l’exception et l’état de la pile
void printStackTrace()
d’exécution au moment de son appel
void printStackTrace(PrintStream s) envoie le résultat dans un flux
Nissaf Fredj
Exceptions en Java
66 Classe Throwable
Nissaf Fredj
Exceptions en Java
77 Exception RunTimeException et Error
La classe Error représente une erreur grave intervenue dans la machine
virtuelle Java ou dans un sous système Java.
L’application Java s’arrête instantanément dès l’apparition d’une
exception de la classe Error.
La classe Exception représente des erreurs moins graves.
Exception hérite de la classe RuntimeException n’ont pas besoin d’être
détectées impérativement par des blocs try/catch.
Nissaf Fredj
Exceptions en Java
88
Bloc try catch finally
Le bloc try rassemble les appels de méthodes susceptibles de produire
des erreurs ou des exceptions. L’instruction try est suivie d’instructions
entre des accolades.
Si un événement indésirable (erreur) survient dans le bloc try, la
partie éventuellement non exécutée de ce bloc est abandonnée et le
premier bloc catch est traité.
S’il y a plusieurs types d’erreurs et d’exceptions à intercepter, il faut
définir autant de blocs catch que de types d’événements.
La clause finally définit un bloc qui sera toujours exécuté, qu’une
exception soit levée ou non.
Nissaf Fredj
Exceptions en Java
99
Bloc try catch finally
Si l’exception générée est une instance de la classe déclarée dans la
clause catch ou d’une classe dérivée, alors on exécute le bloc associé.
Si l’exception n’est pas traitée par un bloc catch, elle sera transmise au bloc
de niveau supérieur.
Nissaf Fredj
Exceptions en Java
10
10 Bloc try catch finally
Avec finally, catch devient non obligatoire.
Nissaf Fredj
Exceptions en Java
11
11 Exceptions prédéfinies
ll existe des exceptions prédéfinies par des bibliothèques standard de Java:
ArithmeticException: division d’un nombre par 0.
ClassCastException: tentative de transformer un objet String en Integer.
IndexOutOfBoundsException: par exemple, appeler un index de tableau.
qui n’existe pas. tab[10] alors que la variable tab n’a que 9 éléments
par exemple.
NullPointerException: appel d’une variable non-existante ou d’un
fichier non-existant par exemple.
FileNotFoundException: exemple, tentative d’ouverture d’un
fichier inexistant en lecture.
Nissaf Fredj
Exceptions en Java
12
12 Exemple avec ArithemticException
Nissaf Fredj
Exceptions en Java
13
13 Exemple avec FileNotFoundException
Nissaf Fredj