PDA

Ver la Versión Completa : Directiva para que no pare


tarco35
08-02-2019, 11:37:51
Hola, tengo el siguiente codigo:

Function FechaValida(Fecha:String):Boolean;
Var
Buena:boolean;
Begin
Buena:=true;
{$R-}
try
StrToDate(Fecha);
except
on E: EConvertError do Buena:=False;
end;
{$R+}
FechaValida :=buena;
End;


El caso es que aunque tengo la directiva de chequeo de rango, cuando introduzco mal la fecha, desde el entorno de delphi 6, se me para y me lanza una "raised exception" de fecha no valida... Si lo ejecuto desde windows no hay problema... Hay alguna directiva para que no se me pare y tenga que darle OK para continuar???
Gracias

movorack
08-02-2019, 13:28:26
Cuando haces el debug, aparecerán los errores a menos que omitas la generación de ese tipo de error en particular.
Cosa que no recomiendo.

Por otro lado... puedes usar TryStrToDate (http://docs.embarcadero.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate3/EN/html/delphivclwin32/SysUtils_TryStrToDate@string@TDateTime.html)



Function FechaValida(Fecha:String):Boolean;
Var
lDt:TDateTime;
Begin
Result := TryStrToDate(Fecha, lDt);
End;

Neftali [Germán.Estévez]
12-02-2019, 17:57:35
En las opciones del entorno, puedes desactivar que las excepciones "salten" cuando estás ejecutando desde el IDE de Delphi; Aunque personalmente no te lo recomiendo, ya que te puede ayudar a encontrar errores y te permite revisar las excepciones que están ocurriendo en el programa, aunque luego estén capturadas.
De todas formas, si aun así lo necesitas, en la configuración se pueden desactivar por tipos o Todas.

https://edn.embarcadero.com/article/images/32015/IMAGE3.JPG

tarco35
17-02-2019, 19:41:45
ok, gracias

mamcx
18-02-2019, 02:16:30
Haciendo "trucos" no es la forma correcta. Ignorar excepciones es uno de los anti-patrones mas grandes que se pueden cometer. En vez, escribe el código correcto (que ademas, ya te lo solucionaron)

tarco35
18-02-2019, 10:54:56
mamcx, lo que queria es que el entorno no parara y por supuesto tener la excepcion controlada, pero sin desactivar otros posibles errores.

mamcx
18-02-2019, 17:33:24
Pero eso lo logras sin necesidad de truquear el compilador, usando código adecuado.