Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/01/2013, 05:31
amchacon
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 10 meses
Puntos: 28
Problemas con las excepciones

Vereis tengo una clase tal que asi:

Código C++:
Ver original
  1. using namespace std;
  2.  
  3. class Rar_File_Mising
  4. {
  5. private:
  6.       ifstream Lectura;
  7.       ofstream Escritura;
  8.      // Demas metodos y variables...
  9.  
  10. public:
  11.       // Constructor
  12.        Rar_File_Mising(const char* Nombre,bool Opcion);
  13.  
  14.       //Metodos
  15.  
  16.       string ListarArchivos();
  17.  
  18.       void Generar(const char* Nombre,vector<unsigned int> Numero);
  19.  
  20.      //...
  21.  
  22.     // Excepciones...
  23.  
  24.       struct Excepcion
  25.      {
  26.           unsigned int N_Error; // Codigo de error
  27.           string Mensaje; // Mensaje de error
  28.  
  29.          Excepcion(string mensaje,unsigned int Error) : Mensaje(Mensaje),N_Error(Error) {}; // Constructor
  30.      };
  31.  
  32.      // Destructor
  33.  
  34.     ~Rar_File_Mising();
  35.  
  36. };

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

Código C++:
Ver original
  1. if (!Lectura.is_open())
  2.            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 ...):

Código C++:
Ver original
  1. try
  2. {
  3.     Rar_File_Mising Nuevo(Nombre.c_str(),Opcion);
  4.     cout<<Nuevo.ListarArchivos();
  5. }
  6. catch(Rar_File_Mising::Excepcion &E)
  7. {
  8.       cout<<E.Mensaje<<endl;
  9. }
  10. catch(...)
  11. {
  12.        cout<<"???";
  13. }

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