82 CHAPITRE 6. LES EXCEPTIONS EN JAVA
6.1 M´ethodes de traitement des exceptions
Il existe fondamentalement deux m´ethodes de traitement des exceptions : la m´ethode directe
et la m´ethode par gestionnaire.
M´ethode directe.- La m´ethode directe est celle que l’on utilise spontan´ement. Les erreurs (`a
lesquelles on pense) sont g´er´ees aux endroits o`u les erreurs peuvent se produire.
L’avantage de cette approche r´eside dans la possibilit´e qu’elle offre au programmeur qui relit
du code de voir le code de gestion d’erreurs dans la proximit´e imm´ediate des lignes de programme
g´en´eratrices d’erreurs ´eventuelles, et de d´eterminer ainsi si la v´erification d’erreur ad´equate est
bien mise en place.
Le probl`eme de cette strat´egie est que le code est en quelque sorte pollu´e par le traitement
des erreurs. Le programmeur int´eress´e `a relire l’application elle-mˆeme ´eprouve quelques diffi-
cult´es `a lire le programme et `a d´eterminer s’il fonctionne correctement. Ceci complique donc la
compr´ehension et la maintenance de l’application.
M´ethode par gestionnaire des erreurs.- Une autre m´ethode consiste `a s´eparer le code de gestion
de l’erreur du programme proprement dit. Lorsqu’une erreur est rencontr´ee, on l`eve une ex-
ception. Le traitement de l’exception , c’est-`a-dire le code qui s’ex´ecute lorsqu’une exception a
´et´e d´etect´ee, est l’objet du gestionnaire d’exception associ´e.
Lorsqu’on l`eve une exception, il se peut qu’il n’y ait pas de gestionnaire de l’exception associ´e.
Si un tel gestionnaire existe, l’exception est captur´ee et trait´ee.
6.2 Traitement des exceptions par gestionnaire
Il n’y a pas grand chose `a dire sur le traitement des exceptions par la m´ethode directe.
Int´eressons-nous donc au traitement des exceptions par gestionnaire en Java.
6.2.1 Principe
6.2.1.1 Les classes d’exception
Notion.- Comme Java est un langage orient´e objet, une exception sera li´ee `a un objet. Toutes les
classes de types d’exceptions d´eriveront de la classe :
Exception
D´efinition d’une classe d’exception.- Une classe d’exception poss`ede normalement deux construc-
teurs : le constructeur par d´efaut et un constructeur dont le param`etre est une chaˆıne de ca-
ract`eres. L’id´ee est que dans le premier cas, on ait un message d’exception pr´ed´efini et dans le
second cas un message pass´e `a travers la chaˆıne de caract`eres.
6.2.1.2 Lancement d’une exception
Notion.- Pour indiquer qu’une exception s’est produite, on lance ou on l`eve une exception. En
Java, il s’agit tout simplement d’une instruction qui consiste `a instancier une classe d’exception
pr´ec´ed´e du mot cl´e throw :
throw new TypeException() ;
Il appartient ´evidemment au programmeur de d´ecider dans quelles conditions quand il veut lever
une exception. Les concepteurs du langage Java ont cr´e´e un certain nombre de classes d’exception,
celles-ci ´etant lev´ees d’une fa¸con transparente au programmeur.