POO sous C++
Exceptions
Med. AMNAI
Filière SMI - S5
Département d’Informatique
19 janvier 2021
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Plan
1
Exceptions
Med AMNAI
Exceptions
2 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Plan
1
Exceptions
2
Mise en oeuvre
Med AMNAI
Exceptions
2 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Plan
1
Exceptions
2
Mise en oeuvre
3
Héritage Polymorphisme et Exception
Med AMNAI
Exceptions
2 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Introduction
Introduction
Gestion des erreurs en utilisant des fonctions
De nombreux problèmes peuvent survenir pendant l'exécution d'un
programme :
• L'insusance de mémoire, la perte d'un chier, la saisie non
valide d'une valeur ;
• Le rôle d'un programme consiste à prévoir et gérer ces erreurs ;
• Informer les utilisateurs et éventuellement à mettre en oeuvre
des solutions de reprise ;
• Mettre en oeuvre des correction de ces erreurs d'exécution.
Med AMNAI
Exceptions
3 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Introduction (1)
Introduction
Gestion des erreurs en utilisant des fonctions
• Une exception est un problème imprévu qui survient lors de
l'exécution.
• Ne pas gérer une exception peut causer un arrêt de votre
programme
Med AMNAI
Exceptions
4 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Introduction
Gestion des erreurs en utilisant des fonctions
Gestion des erreurs en utilisant des fonctions
Med AMNAI
Exceptions
5 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Mise en oeuvre des exceptions
Lancer une exception
Intercepter l'exception
Exercice
Acher les messages l'aide des fonctions membres
Mise en oeuvre des exceptions
Pour mettre en oeuvre des exceptions sans se baser sur les valeurs
de retour des fonctions, on doit :
1
Dénir une classe d'exception.
2
Lancer l'exception (throw).
3
Intercepter (catch) l'exception.
Med AMNAI
Exceptions
6 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Lancer une exception (1)
Med AMNAI
Mise en oeuvre des exceptions
Lancer une exception
Intercepter l'exception
Exercice
Acher les messages l'aide des fonctions membres
Exceptions
7 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Intercepter l'exception
Med AMNAI
Mise en oeuvre des exceptions
Lancer une exception
Intercepter l'exception
Exercice
Acher les messages l'aide des fonctions membres
Exceptions
8 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Intercepter l'exception (1)
Mise en oeuvre des exceptions
Lancer une exception
Intercepter l'exception
Exercice
Acher les messages l'aide des fonctions membres
Si une exception est envoyée par une de ces fonctions appelées dans
le bloc "try", le mécanisme d'exception entraînera les étapes
suivantes :
• Tous les objets créés dans le bloc "try" sont détruits ;
• Le programme sort du bloc "try" après la fonction qui a
entraîné l'exception et n'exécute pas les instructions situées
après cette fonction.
• C++ exécute dans l'ordre soit le bloc catch correspondant à
l'exception interceptée si elle existe, soit le bloc catch(...).
Med AMNAI
Exceptions
9 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Exemple
Med AMNAI
Mise en oeuvre des exceptions
Lancer une exception
Intercepter l'exception
Exercice
Acher les messages l'aide des fonctions membres
Exceptions
10 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Exercice
Mise en oeuvre des exceptions
Lancer une exception
Intercepter l'exception
Exercice
Acher les messages l'aide des fonctions membres
Toutes les fonctions de l'exemple précédent utilisent la même classe
d'exception erreur. Proposer plusieurs classes d'exception chacune
responsable de l'achage d'un message d'erreur.
Med AMNAI
Exceptions
11 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Exercice (Sol)
Med AMNAI
Mise en oeuvre des exceptions
Lancer une exception
Intercepter l'exception
Exercice
Acher les messages l'aide des fonctions membres
Exceptions
12 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Mise en oeuvre des exceptions
Lancer une exception
Intercepter l'exception
Exercice
Acher les messages l'aide des fonctions membres
Acher les messages l'aide des fonctions membres
Med AMNAI
Exceptions
13 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Mise en oeuvre des exceptions
Lancer une exception
Intercepter l'exception
Exercice
Acher les messages l'aide des fonctions membres
Acher les messages l'aide des fonctions membres (1)
Med AMNAI
Exceptions
14 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Héritage Polymorphisme et Exceptions
Hiérarchie des classes d'exception (1)
Med AMNAI
Exceptions
15 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Héritage Polymorphisme et Exceptions
Hiérarchie des classes d'exception (2)
Med AMNAI
Exceptions
16 / 17
Exceptions
Mise en oeuvre des exceptions
Héritage Polymorphisme et Exceptions
Héritage Polymorphisme et Exceptions
Hiérarchie des classes d'exception (3)
Med AMNAI
Exceptions
17 / 17