Código
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:
Código
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 ...):
Código
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?