Ver Mensaje Individual
  #2  
Antiguo 14-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Cool

Hola.

En delphi no podes volver a la línea que ha elevado la excepción, pues estas ya han sido saltadas en el proceso de busqueda de una clausula except. Debieras leer un poco sobre el funcionamiento y comportamiento de Delphi ante las excepciones. Si no estoy mal, la cara oculta de delphi tiene un capítulo o una sección destinada a este tema.

Si, bajo ciertas circunstancias queres dar a tus usuarios la opción de reintentar una operación, lo podes conseguir con un poco de ingenio... algo como lo siguiente funcionaría:

Código:
Procedure TForm1.Confirmar;

Var
  hecho : Boolean;

Begin
  hecho := False;
  repeat
    try
      table1.Post;
      hecho := True;
    except
      on e : EDatabaseError do
        Case PedirConfirmacionAlUsuario(e) of
          cuReintentar : ; // simplemente matamos la excepción para que el ciclo se repita
          cuAbortar : Abort; //Nos salimos del ciclo con otra excepción;
          cuIgnorar : hecho := True; // salimos del ciclo como si nada hubiera pasado;
      end;
    end;
  until hecho;
  OtrasOperaciones;
End;
Hasta luego.

Responder Con Cita