¿Cómo trato esta excepción?
Publicado por BluSky (28 intervenciones) el 11/08/2003 13:59:27
Ya tengo bastante claro el uso de las excepciones en C++. Estoy, por ello, realizando un programa que hace uso de ellas pero no sé tratar una. Os cuento:
Tengo creada una clase CVector que simula un Vector de enteros con las operaciones de añadir elementos,quitar elementos y mostrar los valores contenidos en él.
He creado, además, una clase CError para tratar las posibles excepciones que puedieran darse en las operaciones antes citadas; de manera que, cuando puede suceder un error, lanzo una excepción de tipo CError con un código (1, 2, ...) según el fallo dado; para esto he diseñado una función miembro de CError que actúa en consecuencia en función del Tipo de Error eníado. Hasta ahí todo bien... pero tengo un problema cuando lanzo la excepción correspondiente a Vector lleno... en este caso, lo que pretendo, es pedir más memoria para el vector através de un puntero auxiliar al cual copio todo el contenido del vector actual etc etc etc pero... esto lo tengo que hacer desde la función TratarError de la clase CError y, evidentemente, desde esta clase no puedo acceder a los miembros de CVector para realizar las operaciones anteriores.
He intentado lanzar una excepción del tipo: throw Error(1, V) y, para ello, he creado un constructor que admita un entero y un objeto de la clase Cvector pero tengo problemas de compilación.
Espero haber sabido explicarme. ¿Se os ocurre alguna idea sobre cómo puedo hacer esta operación desde la clase CError?
Saludos y perdon por el rollo
Sebas
Tengo creada una clase CVector que simula un Vector de enteros con las operaciones de añadir elementos,quitar elementos y mostrar los valores contenidos en él.
He creado, además, una clase CError para tratar las posibles excepciones que puedieran darse en las operaciones antes citadas; de manera que, cuando puede suceder un error, lanzo una excepción de tipo CError con un código (1, 2, ...) según el fallo dado; para esto he diseñado una función miembro de CError que actúa en consecuencia en función del Tipo de Error eníado. Hasta ahí todo bien... pero tengo un problema cuando lanzo la excepción correspondiente a Vector lleno... en este caso, lo que pretendo, es pedir más memoria para el vector através de un puntero auxiliar al cual copio todo el contenido del vector actual etc etc etc pero... esto lo tengo que hacer desde la función TratarError de la clase CError y, evidentemente, desde esta clase no puedo acceder a los miembros de CVector para realizar las operaciones anteriores.
He intentado lanzar una excepción del tipo: throw Error(1, V) y, para ello, he creado un constructor que admita un entero y un objeto de la clase Cvector pero tengo problemas de compilación.
Espero haber sabido explicarme. ¿Se os ocurre alguna idea sobre cómo puedo hacer esta operación desde la clase CError?
Saludos y perdon por el rollo
Sebas
Valora esta pregunta


0