Vous êtes sur la page 1sur 17

Cours III

Les exceptions

Dr Mikaël A. Mousse
mikael.mousse@gmail.com

Université de Parakou
Institut Universitaire de Technologie

Année : 2018-2019

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 1 / 17


Sommaire

1 Les exceptions
Les exceptions standards
Exceptions personnalisées

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 2 / 17


Les exceptions

Sommaire

1 Les exceptions
Les exceptions standards
Exceptions personnalisées

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 3 / 17


Les exceptions Les exceptions standards

Introduction

Certains cas d’erreurs peuvent être prévus à l’avance par le


programmeur.
erreurs d’entrée-sortie (I/O fichiers)
erreurs de saisie de données par l’utilisateur

Le programmeur peut :
"Laisser planter" le programme à l’endroit où l’erreur est détectée
Manifester explicitement le problème à la couche supérieure
Tenter une correction

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 4 / 17


Les exceptions Les exceptions standards

Introduction

En Java, les erreurs se produisent lors d’une exécution sous la forme


d’exceptions.
Une exception :
est un objet, instance d’une classe d’exception
provoque la sortie d’une méthode
correspond à un type d’erreur
contient des informations sur cette erreur

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 5 / 17


Les exceptions Les exceptions standards

Terminologie

Une exception est un signal qui indique que quelque chose


d’exceptionnel est survenu en cours d’exécution.
Deux solutions alors :
laisser le programme se terminer avec une erreur
essayer, malgré l’exception, de continuer l’exécution normale
Lever une exception consiste à signaler quelque chose d’exceptionnel
Capturer l’exception consiste à essayer de la traiter

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 6 / 17


Les exceptions Les exceptions standards

Arbre des exceptions

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 7 / 17


Les exceptions Les exceptions standards

Quelques exceptions prédéfinies en Java

Division par zéro pour les entiers : ArithmeticException


Référence nulle : NullPointerException
Tentative de forçage de type illégale : ClassCastException
Tentative de création d’un tableau de taille négative :
NegativeArraySizeException
Dépassement de limite d’un tableau :
ArrayIndexOutOfBoundsException

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 8 / 17


Les exceptions Les exceptions standards

Attraper les Exceptions

...
try {
... /∗ instruction ou bloc dinstructions
instruction (s); pouvant generer une exception∗/
...
} catch (ExceptionClass1 object) { // type d exception capture
...
instruction (s); /∗ instruction ou bloc dinstructions a
... executer en cas dexception∗/
} catch (ExceptionClass2 object) {
...
instruction (s);
...
} finally {
... /∗ instruction ou bloc dinstructions a executer
instructions quelque soit lissue de lexecution des
... instructions du bloc try∗/
}
... ...

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 9 / 17


Les exceptions Les exceptions standards

Exemple

public static void ouvrir_fichier(String nom) {


try {
input = new BufferedReader(new FileReader(nom)); //ouverture d un fichier
}
catch (IOException e) {
System.out.println("Impossible d ouvrir le fichier dentree\n" + e.toString());
System.exit(1);
}
}

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 10 / 17


Les exceptions Exceptions personnalisées

Exceptions personnalisées

Définition de la classe d’exception


Écrire une classe qui hérite de la classe Exception −→ extends ;
Déterminer dans les classes « classiques » les méthodes contenant des
portions de code susceptibles de lever une exception (méthodes à
risque) −→ throws ;
Dans les méthodes à risque, instancier une exception (objet de la
classe d’exception) −→ throw ;
Capturer les exceptions qui sont levées lors des appels de méthodes à
risque −→ try ... catch.

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 11 / 17


Les exceptions Exceptions personnalisées

Exceptions personnalisées

Définition de la classe d’exception


Convention : Nom se termine par « Exception » ;
Le constructeur doit appeler le constructeur de la classe mère et lui
passer en paramètre la chaîne qui décrit l’exception.

class MonException extends Exception {


// constructeur de MonException
public MonException(String message) {
// appel au constructeur de Exception
super (message);
}
public MonException() {
// appel au constructeur de Exception
super ("message par defaut");
}
}

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 12 / 17


Les exceptions Exceptions personnalisées

Exceptions personnalisées

Exemple :

public class NombreHabitantException extends Exception{


public NombreHabitantException(){
super("Vous essayez de cree une ville avec un nombre d habitants negatif");
}
}

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 13 / 17


Les exceptions Exceptions personnalisées

Exceptions personnalisées

Utiliser le mot clé throws pour signaler que la méthode peut lancer
une exception.
throws indique l’exception qui doit être levée.
Utiliser le mot clé throw À l’endroit où l’erreur est détectée.
throw doit être suivi de l’appel au constructeur de l’exception ( new )

public class Ville{


private String nomVille;
private int nbreHabitant;
public Ville(String pNom, int pNbre) throws NombreHabitantException {
if(pNbre < 0)
throw new NombreHabitantException();
else {
nomVille = pNom;
nbreHabitant = pNbre;
}
}

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 14 / 17


Les exceptions Exceptions personnalisées

Exemple complet

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 15 / 17


Les exceptions Exceptions personnalisées

Exemple complet

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 16 / 17


Les exceptions Exceptions personnalisées

Questions

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 17 / 17

Vous aimerez peut-être aussi