Les exceptions Le mécanisme des exceptions est destiné à permettre aux fonctions profondes d'une bibliothèque de notifier la survenue d'une erreur aux.

Slides:



Advertisements
Présentations similaires
Les fonctions A quoi ça sert ?
Advertisements

C.
Traitement des erreurs en Java
Javascript les spécificités du langage - Partie 7 -
2ième Classe (Mercredi, 13 Octobre) C++ Intro CSI2572.
Les exceptions. Quest ce quune exception ? Une erreur dans le programme Due à un bug ou un cas « anormal » Gestion complète en java : JVM Dans dautre.
La notion de type revisitée en POO
GESTION ET TRAITEMENT DES ERREURS
Notions avancées du C++
12/04/ Les exceptions Cours 11 Cours 11.
Les surcharges d'opérateurs
6ième Classe (Mercredi, 17 novembre) CSI2572
Structures de données IFT-2000 Abder Alikacem Gestion des exceptions Édition Septembre 2009 Département d’informatique et de génie logiciel Département.
Exception Handling "Unfortunately, it's almost accepted practice to ignore error conditions, as if we're in a state of denial about errors." Bruce Eckel.
Conception de Programmes - IUT de Paris - 1ère année Les classes Introduction Déclaration d’une classe Utilisation d’une classe Définition des.
C++ Les fonctions. Présentation Utilité : Dès qu'un programme dépasse la centaine de lignes de code, il est pratique de pouvoir le décomposer en plusieurs.
Tableaux et Pointeurs Chaînes de Caractères Programmation Impérative II.
CINI – Li115 1 Semaine 4 Révisions ● Questions de cours ● Types des expressions ● Déclaration de variables ● Instruction conditionnelle et boucles ● Structure.
CINI – Li115 1 Semaine 6 Les fonctions ● Pourquoi écrire des fonctions ? ● Définition de fonctions ● Fonction main ● Appels de fonctions ● Portée des variables.
CINI – Li115 1 Semaine 10 Les pointeurs ● Notion d'adresse ● Déclaration et utilisation de pointeurs ● "Types pointeur" et initialisation des pointeurs.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
1 I P CI P C. 2 Inter Process Communication 3 Définition d'un processus. ● Un système multitâche permet l'exécution simultanée de nombreux programmes.
Présentation python : Épisode 3 ● Comment programmer comme un gentilhomme ? ● Le style de code ou comment bien présenter ● Les test unitaires ou comment.
Modèle objet : les classes
Introduction au Langage Pascal
Programmation en C++ Héritage
Pas de variable globale
Les notions de classe et d'objet
Eléments d’Informatique Cours11 – Allocation dynamique, listes chaînées Catherine Recanati.
Allocation dynamique de mémoire
Pointeurs et langage C.
Détection des erreurs.
Qu'est-ce que POSIX? Une librairie en langage C
Algorithmique et programmation de modèles numériques
Instructions de contrôle
Chapitre 6 La gestion des Exceptions et les assertions
Javadoc et débogueur Semaine 03 Version A17.
I21 Algorithmique et programmation II
Principes de programmation (suite)
Algorithmique Langage C
11ième Classe (Mardi, 18 novembre) CSI2572
Les fonctions.
Les fonctions.
Session 1 31 mai 2017 Plateforme ICONICS Justine Guégan
SIF-1053 Architecture de ordinateurs
Arguments de la ligne de commande
Tableaux à plusieurs dimensions en langage C
Les interfaces en PHP.
Construire un GANTT.
Bonnes pratiques Orienté Objet et Java
L’I NSTRUCTION DE T EST A LTERNATIF Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année.
Programmation en C++ C++ de base
1 RECURSIVITE PRESENTATION Ch. PAUL ALGORITHMIQUE Présentation de la récursivité.
Programmation Orientée Objet C# El Akel Bouchra ISMONTIC Tanger 2013/2014.
Développement d’applications interactives
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
Le Java premiers pas.
Les classes et les objets
Semaine #3 INF130 par Frédérick Henri.
1 Exception && Structure dynamique Exception && Structure dynamique Mohammed OUANAN.
Principes de programmation (suite)
QCM Pointeurs 2 / Q1 On considère la déclaration suivante : char *ptc ; ptc peut contenir : 1) des valeurs de variables de type caractère 2) des adresses.
STREAMS (et fichiers).
Lecture/Écriture de fichiers (I/O)
Chapitre 11 Exceptions.
TP: RC Université de Jijel
TP N°1 : GUI en NetBeans Module R & C Université de Jijel
PROGRAMMATION SOUS R. PRESENTE PAR : ACHETTOU ISMAIL LAARICH TARIQ ENCADRE PAR : Pr. EXPOSÉ SUR LA PROGRAMMATION SUR R 2.
Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine
Transcription de la présentation:

Les exceptions Le mécanisme des exceptions est destiné à permettre aux fonctions profondes d'une bibliothèque de notifier la survenue d'une erreur aux fonctions hautes qui utilisent la bibliothèque.

Lancer une exception la fonction qui détecte un évènement exceptionnel construit une exception et la lance (throw) vers la fonction qui l'a appelée l'exception est un nombre, une chaîne ou, mieux, un objet d'une classe spécialement définie dans ce but (souvent une classe dérivée de la classe exception) comportant diverses informations utiles à la caractérisation de l‘évènement à signaler

Attraper une exception une fois lancée, l'exception traverse la fonction qui l'a lancée, sa fonction appelante, la fonction appelante de la fonction appelante, etc., jusqu‘à atteindre une fonction active (c.-à-d. une fonction commencée et non encore terminée) qui a prévu d' attraper (catch) ce type d'exception ;

Attraper une exception lors du lancement d'une exception, la fonction qui l'a lancée et les fonctions que l'exception traverse sont immédiatement terminées : les instructions qui restaient à exécuter dans chacune de ces fonctions sont abandonnées ; malgré son caractère prématuré, cette terminaison prend le temps de détruire les objets locaux de chacune des fonctions ainsi avortées

Attraper une exception si une exception arrive à traverser toutes les fonctions actives, car aucune de ces fonctions n'a prévu de l'attraper, alors elle produit la terminaison du programme.

Attraper une exception Une fonction indique qu'elle s'intéresse aux exceptions qui peuvent survenir durant l'exécution d'une certaine séquence d'instructions try { instructions susceptibles de provoquer, soit directement soit dans des fonctions appelées, le lancement d'une exception } catch(déclarationParamètre1) { instructions pour traiter les exceptions correspondant au type de paramètre1 catch(déclarationParamètre2) { instructions pour traiter les exceptions, non attrapées par le gestionnaire précédent, correspondant au type de paramµetre2 etc. catch(...) { instructions pour traiter toutes les exceptions non attrapées par les gestionnaires précédents Un bloc try doit être immédiatement suivi par au moins un gestionnaire catch. Un gestionnaire catch doit se trouver immédiatement après un bloc try ou immédiatement après un autre gestionnaire catch. Chaque gestionnaire catch comporte un en-tête avec la déclaration d'un argument formel qui sera initialisé, à la manière d'un argument d'une fonction, avec l'exception ayant activé le gestionnaire.

Exemple int division(int a, int b) { if (b == 0) { throw 0; // division par zéro; } else return a / b; } void main() { try { cout << "1/0 = " << division(1, 0) << endl; } catch (int code) { cout << "Exception " << code << endl;

Déclaration des exceptions qu'une fonction laisse échapper Lorsqu'une exception est lancée à l'intérieur d'une fonction dans laquelle elle n'est pas attrapée on dit que la fonction laisse échapper l'exception en question. Une fonction peut indiquer les types des exceptions qu'elle laisse échapper. Cela définit avec précision, à l'intention des utilisateurs de la fonction, les risques entraînés par un appel de cette fonction. La syntaxe est : en-tête de la fonction throw(type1, type2, ... typek) int division(int a, int b) throw(int)

La classe exception Les exceptions lancées par les fonctions de la bibliothèque standard sont toutes des objets de classes dérivées d'une classe définie spécialement à cet effet, la classe exception, qui comporte au minimum les membres suivants : class exception { public: exception() throw(); exception(const exception &e) throw(); exception &operator=(const exception &e) throw(); virtual ~exception() throw(); virtual const char *what() const throw(); }; La fonction what renvoie une chaîne de caractères qui est une description informelle de l'exception. Aucune exception ne peut être lancée durant l'exécution d'un membre de la classe exception