Académique Documents
Professionnel Documents
Culture Documents
Les Exceptions
- L’arrêt du programme
- La perte du code non sauvegardé
- …
Exception (C’est quoi?)
Résultat d’exécution :
C:>java TestException
Exception in thread "main" java.lang.ArithmeticException:
/ by zero at Erreur.main(Erreur.java:4)
-2-
Exemple d’Exception(Utilisateur)
-2-
Types d’exceptions
Hiearchie des exceptions
-3-
Les types d’exceptions
-4-
Les types d’exceptions
- Throwable est la classe de base, à partir de laquelle vont dériver toutes
les exceptions.
- Error: Elle gère les erreurs liées à la machine virtuelle (LinkageError,
ThreadDeath etc.)
- Exception: contient l'ensemble des exceptions gérées par le
Programmeur (ArithmeticException etc.).
- RunTimeException: regroupe les erreurs de base(Arithmetic, etc.)
- IOException: regroupe les erreurs entrée/sortie.
- Error et RunTimeException appartiennent à la catégorie
« uncheked » donc "throws" n'est pas nécessaire à coté de la
méthode qui lance une exception de cette catégorie là.
- Les exceptions qui sont des sous classes de Error sont généralement
irrécupérables (ex: la VM n'a plus de mémoire)
-4-
unckecked
Exception
Unchecked exception
-4-
Gérer une exception (localement)
try
{ bloc de programme susceptible de
provoquer une exception
}
catch (TypeDexception e)
{ bloc de traitement de l'exception }
-4-
Gérer une exception (transmission de
l’exception)
//Déclaration de la classe ErrEmpl
class ErrEmpl extends Exception { }
Remarque :
Notez la présence de throws ErrEmpl, dans l’en-tête du constructeur, qui
précise que la méthode est susceptible de déclencher une exception de
type ErrEmpl. Cette indication est obligatoire en Java.
-4-
Gérer une exception (transmission de
l’exception)
public class test
{ public static void main (String args[]){
try
{ Employe e = new Employe(18) ;
e.affiche();
Employe e2 = new Employe(-3) ;
e2.affiche();
}
catch (ErrEmpl e)
{ System.out.println ("Erreur construction") ;
System.exit (-1) ; // Interrompre le programme
}
}}
Résultat :
age: 18
Erreur construction
Java Result: -1
-4-
Solution 1 : gestion active avec
try/catch
Solution 2 : gestion passive avec
throws
Remarques
Remarques
try
{ .....
}
.....
.....
catch (ErrConst) // erreur : catch doit être contigu au bloc try
{ ..... }
- Vous pouvez ajouter autant de blocs catch que vous le voulez à la suite d'un
bloc try, mais respectez l'ordre : du plus pertinent au moins pertinent.
-4-
Remarques
Héritage -4-
Remarques
Bloc Finally
- Ce bloc contient les instructions qui sont toujours exécutées après avoir
quitté la clause /try, indépendamment du type de sortie (normalement,
exception gérée par un catch, exception non saisie,
return, break, continue).
-4-
Bloc finally
Bloc Finally
try { ... }
finally { ... }
-4-
Bloc Finally
try { ... }
finally { ... }
-4-