/* IFT1169 - démonstration #04 - exercice 01 - Question 02 - 11-février -2006 v1.03 M.Lokbani - màj pour IFT1169 + gcc3.4.2 06-décembre -2003 v1.02 M.Lokbani - comments + gcc3.2 23-juin -2000 v1.01 M.Lokbani - gcc2.95 23-novembre -1999 v1.00 M.Lokbani - l'énoncé+solution idée originale de A.Dancel, 25/01/97 remise à jour pour prendre en compte la nouvelle définition de unexpected + terminate (voir pour cela livre de Stroustrup). contact: lokbani@iro.umontreal.ca Copyright (C) 1999-2006 Université de Montréal Département d'informatique et de Recherche Opérationnelle Mohamed Lokbani -- Tous Droits Réservés -- All Rights Reserved -- Description: ------------ Fichier source associée à 1169demo04exo1q2sol.h Description: Cet exercice permet de vous montrer l'utilisation des techniques d'exception en C++. Définition de nos propres méthodes unexpected et terminate. Ce solutionnaire couvre les questions 2 et 3. */ #include "1169demo04exo1q2sol.h" void my_terminate () { cout << "Appel de terminate \n"; exit(1); } // unexpected appel terminate dans le cas ou my_unexpected n'a pas été trouvée! // L'appel classique est: unexpected -> terminate -> abort! void my_unexpected () { cout << "Appel de unexpected\n"; exit(1); // sortir sans appel à terminate } int main() { try { set_terminate((terminate_handler) my_terminate); set_unexpected((unexpected_handler) my_unexpected); Essai e1; e1.f1(); } catch (Essai::Erreur e) { cout << "Erreur numéro : " << e.get_val() << endl; } return 0; } /* >1169demo04exo1q2sol Constructeur d'Essai Appel de unexpected >Exit code: 1 */