Vereis tengo una clase tal que asi:
Código C++:
Ver originalusing 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 C++:
Ver originalif (!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 C++:
Ver originaltry
{
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?