FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
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; |
|
|
|