Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: DanFire en 2 Mayo 2016, 10:35 am



Título: [resuleto] error unexpected unqualified-id before ‘try’
Publicado por: DanFire en 2 Mayo 2016, 10:35 am
Buenas gente!
he tenido uun error bastante extraño en este corto codigo espero que podais ayudarme:

Código
  1. #ifndef TEXTVIEWER_H
  2. #define TEXTVIEWER_H
  3. #include <iostream>
  4. #include "Tissu.h"
  5. #include "Masse.h"
  6. #include "Systeme.h"
  7. #include "Ressort.h"
  8. #include "SupportADessin.h"
  9. class TextViewer : public SupportADessin
  10. {
  11. public:
  12.    try {
  13.        bool condition (false);
  14.  
  15.        virtual void Dessine(Tissu const& element)const override
  16.        {
  17.            if (condition) {
  18.                throw 1;
  19.            }
  20.            std::cout<<element;            
  21.        }
  22.        virtual void Dessine(Systeme const& element)const override
  23.        {
  24.            if (condition) {
  25.                throw 2;
  26.            }
  27.            element.Affiche();
  28.        }    
  29.  
  30.        virtual void Dessine(Masse const& element)const override
  31.        {
  32.            if (condition) {
  33.                throw 3;
  34.            }
  35.            std::cout<<element;
  36.        }    
  37.        virtual void Dessine(Ressort const& element)const override
  38.        {
  39.            if (condition) {
  40.                throw 4;
  41.            }
  42.            std::cout<<element;
  43.        }    
  44.    }catch(int erreur){
  45.        switch (erreur) {
  46.            case 1: {
  47.                std::cerr<< "Pas de support à dessin definit dans : Dessine(Tissu).  "<<std::endl
  48.                    break;
  49.            }
  50.            case 2: {
  51.                std::cerr<< "Pas de support à dessin definit dans : Dessine(Systeme).  "<<std::endl    
  52.                    break;
  53.            }
  54.            case 3: {
  55.                std::cerr<< "Pas de support à dessin definit dans : Dessine(Masse).  "<<std::endl
  56.                    break;
  57.            }
  58.            case 4: {
  59.                std::cerr<< "Pas de support à dessin definit dans : Dessine(Ressort).  "<<std::endl
  60.                    break;
  61.            }
  62.                throw;
  63.  
  64.        }
  65.  
  66.  
  67.  
  68.    }
  69.  
  70.  
  71.  
  72. };
  73. #endif

Y me dice :
TextViewer.h:12:5: error: expected unqualified-id before ‘try’
           try {
          ^
TestTextViewer.cpp:26:1: error: expected ‘}’ at end of input
   }
   ^
TestTextViewer.cpp:26:1: error: expected unqualified-id at end of input

Gracias


Título: Re: error unexpected unqualified-id before ‘try’
Publicado por: ivancea96 en 2 Mayo 2016, 10:46 am
No puedes poner try-catch fuera de una función. Ahí lo tienes dentro de la clase. Tienes que ponerlo dentro de cada método que lo necesite.


Título: Re: error unexpected unqualified-id before ‘try’
Publicado por: DanFire en 2 Mayo 2016, 11:02 am
joo pues vaya rollo, no? Vale muchas gracias!


Título: Re: [resuleto] error unexpected unqualified-id before ‘try’
Publicado por: ivancea96 en 2 Mayo 2016, 13:25 pm
De todos modos, ese no sería el uso ideal de try-catch. En vez de throws, pones el cerr directamente.