cm04-gestiondeserreurs.pdf — March 15, 2005 — 3
Plan Pr´esentation Les exceptions en Java Cr´eation Pratique Principe et Types Gestion et Syntaxe Exemple
Fonctionnement des Exceptions en Java
Principe
Lever une exception consiste `a d´erouter le flot d’instructions pour soit la
propager , soit la traiter.
Si l’exception est propag´ee au main alors le programme s’arrˆete et affiche
des informations la caract´erisant.
Informations associ´ees `a une exception lev´ee
le type de l’exception
Utile au d´eveloppeur qui appellera une m´ethode levant une
exception,
le bon type permettra le bon traitement
le lieu de l’exception donn´e par la pile des appels
Utile au d´ebogueur pour isoler/d´eboguer le probl`eme
un message caract´erisant l’exception
Utile `a l’utilisateur pour l’informer
Gestion des erreurs 9 / 26
Plan Pr´esentation Les exceptions en Java Cr´eation Pratique Principe et Types Gestion et Syntaxe Exemple
Hi´erarchie
Les exceptions sont des classes
Exceptions non control´ees
java.lang.Error
probl`eme de JVM ⇒arrˆet
java.lang.RuntimeException
gestion falcutative (ex: div / 0)
Exceptions control´ees
java.lang.Exception
propagation/traitement obligatoire
Deux m´ethodes pratiques de Throwable
void printStackTrace()
String toString()
Gestion des erreurs 10 / 26
Plan Pr´esentation Les exceptions en Java Cr´eation Pratique Principe et Types Gestion et Syntaxe Exemple
Exemple d’ex´ecution d’une exception non control´ee
DivisionParZero.java
1package fr.insarouen.asi.prog.cours4;
2import java.io.*;
3public class DivisionParZero {
4static int fct(int a, int b) {
5return a/b;
6}
7public static void main(String[] param) {
8int c;
9c=fct(5,3);
10 System.out.println("c= "+c);
11 c=fct(3,0);
12 System.out.println("c= "+c);
13 }
14 }
Ex´ecution
java -classpath ./classes fr.insarouen.asi.prog.cours4.DivisionParZero
c= 1
Exception in thread "main" java.lang.ArithmeticException: / by zero
at fr.insarouen.asi.prog.cours4.DivisionParZero.fct(DivisionParZero.java:5)
at fr.insarouen.asi.prog.cours4.DivisionParZero.main(DivisionParZero.java:11)
Gestion des erreurs 11 / 26
Plan Pr´esentation Les exceptions en Java Cr´eation Pratique Principe et Types Gestion et Syntaxe Exemple
Propager des exceptions
D´efinition
Propager une exception consiste `a renvoyer son traitement `a la m´ethode
appelante.
Syntaxe
methode(...) throws Exception1, Exception2 {
...
// appel `a une ou plusieurs m´ethodes susceptibles de lever des
// exceptions de classes Exception1, Exception2 (ou sous classes)
// la clause throws fait partie de la signature de la m´ethode
...
}
Remarque
En Java, toute exception non contrˆol´e lev´ee par une m´ethode est
implicitement propag´ee.
Gestion des erreurs 12 / 26