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 :

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"));
	}
Voici comment je tente de l'attraper :

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;
	}
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).

Quelqu'un peut-il m'expliquer comment cela est-il possible ?

Merci