![]() |
Excepciones
Hola, estoy empezando a programar en Delphi 4 Tengo el siguiente problema con las excepciones. Tengo una función con un bucle y dentro de este bucle se llama a una función donde se pueden producir excepciones que yo capturo. Entonces si se produce una excepción ya no continua en el bucle, ¿Como se hace para que continue con el bucle, hasta que llegue a la condición de salida de este? Gracias es muy urgente |
Antes de nada y puesto que son tus primeros mensajes, bienvenido al foro.
Te recomiendo que leas la guía de estilo: http://www.clubdelphi.com/foros/guiaestilo.php Entre otras cosas varás que no es correcto repetir hilos en diferentes foros. En cuanto a la pregunta, si capturas la excepción dentro del bucle (en lugar de fuera), no debería haber problema para que el bucle cntinuara si la condición se sigue cumpliendo. |
Hola todo@s.
En principio perdón pero no me di cuenta de las reglas de estilo. Capturo la excepción en la función que se produce. Más o menos es esto WHILE () DO BEGIN .... funcion que puede producir excepción .... END Funcion que puede producir excepción BEGIN try ... except on E: EConvertError do raise eCamposNoValido.Create(''); end; END; Entonces si se produce una excepción al volver al bucle se sale. Gracias |
En realidad estás capturando la excepción (try..except), pero luego la estás "lanzando" de nuevo al utilizar:
Con ésto lo que estás haciendo es volver a lanzarla; Lo lógico aquí sería guardar valor, sacar un mensaje,... pero si vuelves a hacer el raise, la excepción sigue, llega al bucle y como ahí no hay Try..except que la capture, pues se para (como tú dices). ¿Exactamente qué quieres hacer cuando se produzca una excepción (antes de continuar con el bucle)? |
Lo que quiero hacer cuando se produzca la excepción es que se continue con el bucle.
Pero en la función de bucle que sepa que se ha produccido una excepción para luego informar al usuario cuando se termine el bucle. Espero que me entiendas, Gracias |
Podrías utilizar un TStringList en el que almacenes las excepciones que se vayan produciendo en las vueltas del bucle y presentarlas al final de éste:
// Saludos |
La franja horaria es GMT +2. Ahora son las 23:57:31. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi