[Lazarus-es] try...except
Jesus Reyes A.
jesusrmx en gmail.com
Jue Jun 22 07:53:50 CEST 2017
En Wed, 21 Jun 2017 18:30:33 -0500, hfiandor via Lazarus-es
<lazarus-es en lists.lazarus-ide.org> escribió:
>
> Estimados listeros:
>
>
> Tengo en un procedure lo siguiente:
>
> try
>
> if fdm.tProSerNeg1.Active=true then fdm.tProSerNeg1.Active:=false;
>
> fdm.tProSerNeg1.FileName:=camino_BD + '\Clasificadores.db';
>
> if fdm.tProSerNeg1.Active=false then fdm.tProSerNeg1.Active:=true;
>
> Log('ProSerNeg1 está activa.');
>
> except
>
> Log('Error en activar ProSerNeg1.');
>
> On E :Exception do
>
> begin ShowMessage(E.Message); end;
>
> end;
>
>
> Deseo conocer cuál es el error.
>
>
> Cuando trato de compilar, me dice que “On not found..” o algo parecido.
>
>
> Leí una página web sobre Try…except y no me dice mucho más que esto.
>
>
> Evidentemente me falta algo, que no sé qué es. O quizás he redactado mal
> el error handling.
>
>
> Les agradecería alguna ayuda para aprender y salir del apuro.
>
>
> Saludos
>
> Ing. Héctor F. Fiandor Rosario
>
>
Hola Héctor, primero que nada recibe un cordial saludo.
Según la sintaxis declarada en esta página:
https://www.freepascal.org/docs-html/ref/refse113.html
lo que va entre un except ... end; puede ser solamente una de tres cosas:
1. Nada (... que puede incluir, claro esta, comentarios o líneas en blanco)
2. Una lista de instrucciones que no sean del tipo On E:Exception do ...
ó
3. Una lista de instrucciones del tipo On E:Exception do ...
Pero no puedes tener una lista de instrucciones mezclando los del tipo 2 y
3 que es justamente lo que has hecho en tu ejemplo y por eso el
compilador se queja.
Para solucionarlo en lugar de:
except
Log('Error en activar ProSerNeg1.');
On E :Exception do
begin ShowMessage(E.Message); end;
end;
Intenta esto:
except
On E :Exception do
begin
Log('Error en activar ProSerNeg1.');
ShowMessage(E.Message);
end;
end;
saludos.
Jesus Reyes A.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20170622/0766227d/attachment.html>
Más información sobre la lista de distribución Lazarus-es