con recursividad?
teniendo una funcion que adentro llame a la que vos queres capturando
a la excepcion y en el catch llamas a la primer funcion.
PD: lo escribi todo sin pensar 100%, por ahi estoy diciendo una
burrada o me estoy olvidando de algo.
On Nov 17, 2007 7:47 PM, Francisco Dibar <[EMAIL PROTECTED]> wrote:
> hola gente, les hago una pregunta:
>
> como harian lo siguiente?:
>
> Quieren invocar una funcion f, y atrapar distintas excepciones. Al
> atrapar una en particular, deciden reintentar f.
> Esto suena muy sencillo, pero si escribo la invocacion a f en el scope
> del catch para esa excepcion en particular, tengo que reescribir todos
> los catch de las demas excepciones. La unica forma que encontre de
> resolver esto es con un goto!
> Estoy seguro que debe haber una forma mas elegante de resolver esto,
> pero no se me ocurre.
>
> ejemplo:
>
> #include <iostream>
> #include <exception>
>
> using namespace std;
>
> class e1 : public std::exception
> {
> public:
> virtual const char* what() const throw() { return "e1"; }
> };
>
> class e2 : public std::exception
> {
> public:
> virtual const char* what() const throw() { return "e2"; }
> };
>
> void f(int i)
> {
> if (i == 1)
> throw e1();
> else
> throw e2();
> }
>
> int main(int argc, char** argv)
> {
> int i = 1;
> retry:
> try {
> f(i);
> }
> catch(const e1& e) {
> cout << e.what() << endl;
> static bool catchedOnce = false;
> i = 2;
> if (!catchedOnce) {
> catchedOnce = true;
> goto retry;
> }
> }
> catch(const e2& e) {
> cout << e.what() << endl;
> }
> }
>
> saludos,
> francisco.
> _______________________________________________
> Lista de correo Programacion.
> [email protected]
> http://listas.fi.uba.ar/mailman/listinfo/programacion
>
--
Lautaro
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion