Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-04-2004
senpiterno senpiterno is offline
Miembro
 
Registrado: abr 2004
Posts: 112
Poder: 20
senpiterno Va por buen camino
Reintentar cuando se produce un error

Hola amigos

Quisiera saber si Delphi tiene las herramientas para manejar el suceso de la siguiente situacion: ¿una vez producido un error (excepcion) y capturado en la estructura try.....except, es posible volver la ejecucion a la misma linea o linea siguiente en la que se produjo el error?, esto podria ser util cuando el error se deba a causas del entorno (las cuales pueden cambiar de un momento en otro), por lo cual el error seria recuperable, reintentando utilizar el mismo codigo en donde se genero....

De antemano se agradece cualquier ayuda.
Responder Con Cita
  #2  
Antiguo 14-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:24:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi