Bonjour à tous, je reprends un gros programme et veux lui apporter quelques modifications.
Je commence par vouloir vérifier les arguments d'entrée du programme, car actuellement, si on ne passe rien sur la ligne de commande, ça fait tout planter (il y a direct un cout << argv[1] << endl; sans aucun test).
Voici comment je lance mon exception :
Voici comment je tente de l'attraper :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 // Vérification des arguments d'entrée if(nbparams < 2) { cerr << "Impossible de créer ELSIE sans fichier en entrée" << endl; throw(new std::exception("Erreur argument")); }
Mon problème, c'est que c'est toujours "Exception !" qui est affichée en sortie erreur, cela signifie qu'on entre dans le catch(...) mais pas dans le catch(const std::exception & e) comme je le souhaiterais (et l'imaginais).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 try { C_Client_elsie Client_elsie(argc,argv); } catch(const std::exception & e) { cerr << "Exception attrapee : " << e.what() << endl; } catch(...) { cerr << "Exception !" << endl; }
Quelqu'un peut-il m'expliquer comment cela est-il possible ?
Merci![]()
Partager