Anuncios Google

Problemas con las excepciones

 

Vereis tengo una clase tal que asi:

 

 

using namespace std;
 
class Rar_File_Mising
 
{
 
private:
 
      ifstream Lectura;
 
      ofstream Escritura;
 
     // Demas metodos y variables...
 
 
 
public:
 
      // Constructor
 
       Rar_File_Mising(const char* Nombre,bool Opcion);
 
 
 
      //Metodos 
 
 
 
      string ListarArchivos();
 
 
 
      void Generar(const char* Nombre,vector<unsigned int> Numero);
 
 
 
     //...
 
 
 
    // Excepciones...
 
 
 
      struct Excepcion
 
     {
 
          unsigned int N_Error; // Codigo de error
 
          string Mensaje; // Mensaje de error
 
 
 
         Excepcion(string mensaje,unsigned int Error) : Mensaje(Mensaje),N_Error(Error) {}; // Constructor
 
     };
 
 
 
     // Destructor
 
 
 
    ~Rar_File_Mising();
 
 
 
};

 

 

Como veis, he definido una estructura para definir las excepciones que me puedan ocurrir. De forma que si ocurre algo inesperado:

 

 

if (!Lectura.is_open())
 
           throw Excepcion("No hay ningun fichero abierto",ARCHIVO_NO_ABIERTO);

 

 

El problema esque no me las coge nunca en el bloque catch (ni siquiera en el bloque ...):

 

 

try
 
{
 
    Rar_File_Mising Nuevo(Nombre.c_str(),Opcion);
 
    cout<<Nuevo.ListarArchivos();
 
}
 
catch(Rar_File_Mising::Excepcion &E)
 
{
 
      cout<<E.Mensaje<<endl;
 
}
 
catch(...)
 
{
 
       cout<<"???";
 
}

¿Que es lo que puede pasar? Me acabo de cambiar al codeblocks hace poco, tengo que activar algo para que me admita las excepciones?

 


Anuncios Google