Lautaro,
Podria andar pero vas a estar acumulando llamadas en la pila anda
a saber cuantas veces.
¿un while(!success) try{f();success=true;}catch(ex){};no te sirve?
(guai con no hacer un while infinito)
sds
On Nov 17, 2007 8:37 PM, Lautaro Cozzani <[EMAIL PROTECTED]> wrote:
> 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
>
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion