[CPP] exception non attrapée

Voir le sujet précédent Voir le sujet suivant Aller en bas

[CPP] exception non attrapée

Message  Jhon le Mer 22 Déc 2010, 18:40

Bonjour,

J'ai un soucis d'exception non attrapée dans mon projet Cephalopod : malgré que les instructions susceptibles de faire un throw soient bien dans un bloc try, elles ne sont pas rattrapées par le catch, provoquant le plantage de l'application. Le code ressemble à ceci :
Code:
(...)

try
{
   //game est le plateau de jeu
   printBoard(game);
   cout << "Entrez la ligne puis la colonne "
      << "de la position ciblee" << endl;
   cin >> param1 >> param2;
   p = Position(param1,param2);
   if(game->isCapture(&p)) //isCapture throw si p invalide
   {
      //gestion d'un placement avec capture
   }
   else
      //gestion d'un placement simple
}
catch(exception e)
{
   cout << "Erreur en jouant le coup : " << e.what() << endl;
}

(...)

J'ai vérifié dans mes notes, mais le fait que isCapture soit dans l'if ne devrait pas poser problème. J'ai oublié quelque chose ? Pourquoi l'exécution s'interrompt-elle au lieu d'afficher le message d'erreur ?

Merci d'avance !

Jhon

Jhon

Nombre de messages : 212
Age : 28
Prénom : Jonathan
Statut : promo réseaux 2012
Localisation : 50.879858N,4.34801E
Date d'inscription : 23/09/2008

Revenir en haut Aller en bas

Re: [CPP] exception non attrapée

Message  aleben89 le Mer 22 Déc 2010, 18:49

j'ai aussi le même problème Sad même en catchant (...) qui si je ne dis pas de bétises doit catcher toutes les execeptions, mon programme plante quand même Sad

pour moi voici mon message d'erreur :

Code:
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
terminate called after throwing an instance of 'char const*'

aleben89

Nombre de messages : 108
Age : 27
Prénom : Benjamin
Statut : Etudiant 3ème Réseau
Localisation : Bruxelles ou en province de Luxembourg (perdu en verte campagne entre 2 champs)
Date d'inscription : 27/01/2009

Revenir en haut Aller en bas

Re: [CPP] exception non attrapée

Message  nvs le Mer 22 Déc 2010, 18:53

aleben89 a écrit:j'ai aussi le même problème Sad même en catchant (...) qui si je ne dis pas de bétises doit catcher toutes les execeptions, mon programme plante quand même Sad

pour moi voici mon message d'erreur :

Code:
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
terminate called after throwing an instance of 'char const*'
le problème ne vient peut-être pas du catch, mais du throw...



cyclops

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [CPP] exception non attrapée

Message  aleben89 le Mer 22 Déc 2010, 19:07

le problème est qu'a l'endroit où ça plante je ne fais pas de throw Sad

Code:

do
      {
         //demande d'une position de jeu
         unsigned int abs,ord;
         cout<<"Veuillez rentrer la position a laquelle vous souhaitez poser un de"<<endl;
         cout<<"L abscisse:"<<endl;
         cin>>abs;
         cout<<"L ordonnee:"<<endl;
         cin>>ord;
         try
         {
         if(!nettoyageCin())
            /**
             * @bug problème d'exception non capturable
             * */
            pos=Position(abs,ord);
         }
         catch(...)
         {
            cout<<"wtf";
         }

      }while(!plateau.posValide(pos));

et le code de nettoyageCin est le suivant :

Code:


//code adapter d'un post du site code source partie cpp
/**
 * @bug problème d'exception non capturable
 * */
bool nettoyageCin()
{
   bool corrompu=false;
   if(cin.fail())//test si cin est valide (si il a recu ce qui lui convenait)
   {
      cin.clear();//remet le flux a l'etat normal
      while(cin.get()!='\n')
      {
         //on vide le flux
      }
      corrompu=true;
   }
   return corrompu;
}

aleben89

Nombre de messages : 108
Age : 27
Prénom : Benjamin
Statut : Etudiant 3ème Réseau
Localisation : Bruxelles ou en province de Luxembourg (perdu en verte campagne entre 2 champs)
Date d'inscription : 27/01/2009

Revenir en haut Aller en bas

Re: [CPP] exception non attrapée

Message  Jhon le Mer 22 Déc 2010, 19:32

Pour moi c'est bon, merci bien Mr NVS !

Je faisais en effet throw "truc machin est pas bon !";, ce qui correspond à un char* et non pas un string (comme indiqué dans les déclarations des fonctions). Suffisait de caster en string (et de catch(string) plutôt qu'exception), et ça tourne.

Problem solved

Jhon

Nombre de messages : 212
Age : 28
Prénom : Jonathan
Statut : promo réseaux 2012
Localisation : 50.879858N,4.34801E
Date d'inscription : 23/09/2008

Revenir en haut Aller en bas

Re: [CPP] exception non attrapée

Message  nvs le Mer 22 Déc 2010, 20:09

aleben89 a écrit:le problème est qu'a l'endroit où ça plante je ne fais pas de throw Sad
[...]
étrange... mais impossible d'en dire plus sans une vue plus globale de tes sources. tu peux toujours m'envoyer ton projet zipé, mais je ne te promets pas d'avoir le temps d'y regarder Sad






pale

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [CPP] exception non attrapée

Message  nvs le Mer 22 Déc 2010, 20:09

Jhon a écrit:Je faisais en effet throw "truc machin est pas bon !";, ce qui correspond à un char* et non pas un string [...]
pour être plus précis, un const char * Wink






Like a Star @ heaven

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [CPP] exception non attrapée

Message  aleben89 le Mer 22 Déc 2010, 20:46

Merci pour votre proposition Mr. NVS mais j'ai trouvé d'où venais mon problème, c'était une exception autre part que je ne capturais pas, maintenant je n'ai plus ce soucis Smile

aleben89

Nombre de messages : 108
Age : 27
Prénom : Benjamin
Statut : Etudiant 3ème Réseau
Localisation : Bruxelles ou en province de Luxembourg (perdu en verte campagne entre 2 champs)
Date d'inscription : 27/01/2009

Revenir en haut Aller en bas

Re: [CPP] exception non attrapée

Message  nvs le Mer 22 Déc 2010, 20:48

aleben89 a écrit:Merci pour votre proposition Mr. NVS mais j'ai trouvé d'où venais mon problème, c'était une exception autre part que je ne capturais pas, maintenant je n'ai plus ce soucis Smile
voila qui rassure Smile






cat

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [CPP] exception non attrapée

Message  Contenu sponsorisé Aujourd'hui à 07:16


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum