Académique Documents
Professionnel Documents
Culture Documents
Exception
Une exception est une erreur ou bien une action inattendue
qui peut avoir lieu au moment de la compilation ou de
l’exécution d’un programme
Traditionnellement, en cas d'erreur, le programme
s'interrompt définitivement avec l'affichage d'un message
à l'écran décrivant l'erreur
L'idée est alors de munir le langage Java d'un mécanisme
permettant de gérer les erreurs sans que le programme
s'arrête définitivement
En Java, les exceptions sont représentées sous forme d’objets
Ainsi, lors de la détection d'une exception, un objet, qui
identifie cette exception, est créé
Error Exception
…
ArethmiticException EOFException
NumberFormatException ClassNotFoundException
}
}
9 Mohamed Aymen CHARRADA 27/11/2023
Les clauses « try », « catch » et « finally »
Le bloc « try - catch » assure le traitement des exceptions
Le bloc « try » rassemble les instructions susceptibles de
produire des erreurs ou des exceptions
Chaque bloc « try » est suivi par au moins un bloc « catch »
S'il y a plusieurs types d'exceptions à intercepter pour un
même bloc de code, il faut définir autant de blocs « catch »
que de types d’exceptions possibles
Si une exception survient dans le bloc « try », le reste de ce
bloc est abandonné et le contrôle est transféré au bloc « catch
» correspondant, qui capture et gère l'exception spécifiée,
permettant au programme de réagir à cette exception sans
planter
La méthode « getMessage » de la
classe de l’exception est appelée
On dit que l’exception est traitée
25 sur
Mohamed Aymen place où elle a été interceptée
CHARRADA 27/11/2023
Propagation des exceptions
Chaque méthode susceptible de lever une exception
dans son corps doit assumer sa responsabilité en traitant
cette exception ou en la propageant vers la méthode
appelante
La méthode doit alors déclarer cette propagation dans
l'en-tête de la méthode à travers la clause « throws »
4
6 5
3
methodeA () { 1 2
try{ methodeD () throws
methodeB () throws methodeC () throws
methodeB ( ); Exception1{
Exception1{ Exception1{
}catch (Exception1 e){ throw new
methodeC ( ); methodeD ( );
… Exception1;
} }
} }
}
Exception traitée dans Exception levée dans la
la méthode « A » méthode « D »
26 Mohamed Aymen CHARRADA 27/11/2023
Exercice 1
Etant donnée l’arborescence des classes, dites si le code
suivant est correcte ou non. Si non, proposez une
correction
try {
traitement;
}
Exception catch (BException e) {
System.out.println("Exception B"); }
AException BException catch (CException e) {
System.out.println("Exception C"); }
CException catch (AException e) {
System.out.println("Exception A"); }
catch (Exception e) {
System.out.println("Exception"); }