Académique Documents
Professionnel Documents
Culture Documents
Partie III
Les Exceptions & Threads
Y. I. KHAMLICHI 1
Traitement des erreurs
Les exceptions
2
Les exceptions en Java
3
Notion d'exception
4
Les exceptions en Java
5
Terminologie
6
Exemples d’exceptions
de Java
Exceptions déjà rencontrées
• Division par zéro Accès hors tableau
static void main(String[] args) static void main(String[] args) {
{ int[] tab = {4, 0, -1};
int[] tab = {2, 1, 0, -1}; int i = 0;
for (int val : tab) { while (i <= tab.length) {
System.out.println(20/val); System.out.println(tab[i]);
} i++;
} }
System.out.println("done");
}
10 4
20 0
Exception in thread "main" -1
java.lang.ArithmeticException: Exception in thread "main“
/ by zero java.lang.ArrayIndexOutOfBounds
at Main.main(Main.java:7) Exception: 3
at Main.main(Main.java:6)
• L’exécution du programme est stoppée à l’erreur
7
RATTRAPER UNE EXCEPTION
8
Traiter une exception
Capturer et traiter des exceptions
• Les blocs try{...}
• Permettent de délimiter une partie du programme dont les
opérations et appels de méthodes sont susceptibles de générer
des exceptions que l’on souhaite traiter.
Syntaxe :
try {
code surveille
} catch (typeException1 e) {
code pour « traiter » l'exception e de type typeException1
} catch (typeException2 e) {
code pour « traiter » l'exception e
} catch (typeException3 e) {
...
} finally {
code a exécuter dans tous les cas
}
14
PRODUIRE UNE EXCEPTION
15
Lancer une exception
Lancement d’exceptions avec – throw –
• Instruction pour lancer une exception : throw e;
• e est une instance d’une classe héritant de la classe Throwable
• Exemple 1 : throw new Exception("Message d’erreur");
• Exemple 2 : throw new ArithmeticException("Division by 0");
Exemple
try { Division non entière
int res = division(20,3); java.lang.Exception: Division
} catch(Exception e) { non entière
System.out.println(e.getMessage()); at Main.division(Main.java:17)
e.printStackTrace();
} at Main.main(Main.java:6)
Si une exception n’est jamais rattrapée, y compris dans la méthode main, elle
provoque l’arrêt du programme et la méthode printStackTrace() sera appelée.
Définir une exception
Il existe de nombreuses classes d’exceptions prédéfinies en Java :
Error Exception
java.io.FileNotFoundException IllegalArgumentException
19
Définir une exception
20
Intérêt des exceptions
22
Définir une exception
Exemple :
23
Lever une exception
24
Lever une exception
Exemple:
class Stop extends RuntimeException {}
public class Exception {
public static void main(String [] args) throws Stop {
Scanner cl=new Scanner(System.in);
int x = cl.nextInt();
System.out.println("Prog1");
System.out.println("Prog2");
System.out.println("Prog3");
} l’exécution de la commande java Exception puis la saisie de la valeur 2
} (pour la variable x) produira l’affichage suivant :
Prog 1
Exception in thread "main" Stop at Arret.main(Arret.java:7)
25