Exception auswerten

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
markkowalt
Beiträge: 32
Registriert: Sa 13. Aug 2011, 16:15

Exception auswerten

Beitrag von markkowalt »

Hallo,
ich würde gerne eine Exception auswerten, dazu habe ich:

Code: Alles auswählen

try
...
except
[*]
    on E: Exception do // Fehler hier
      ShowMessage(E.ClassName, ': ', E.Message);
end;
Fehlermeldung:
unit1.pas(524,8) Error: Identifier not found "on"
unit1.pas(524,8) Fatal: Syntax error, "END" expected but "identifier E" found


EDIT
Es scheint so, als dürfte bei [*] nichts stehen, denn ansonsten klappt es, aber wie kommt das ?

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2805
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Exception auswerten

Beitrag von m.fuchs »

markkowalt hat geschrieben:Es scheint so, als dürfte bei [*] nichts stehen, denn ansonsten klappt es, aber wie kommt das ?
Was möchtest du denn auch dort hinschreiben?
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: Exception auswerten

Beitrag von Scotty »

Es ist so, wie du schreibst, dass im Exceptionhandler nur der Fehler ausgewertet werden kann. Was sollte man auch sonst da hinschreiben?
http://www.freepascal.org/docs-html/ref ... 19000014.2" onclick="window.open(this.href);return false;

markkowalt
Beiträge: 32
Registriert: Sa 13. Aug 2011, 16:15

Re: Exception auswerten

Beitrag von markkowalt »

Ich hatte eine Variable busy vom Typ boolean, die angibt, ob ein Prozedur ausgeführt werden darf.
Während die Prozedur ausgeführt wird, soll sie nicht noch mal vom User gestartet werden, daher wird am Anfang die Variable auf TRUE gesetzt.
Am Ende, wenn die Prozedur fertig ist, wird sie dann auf FALSE gesetzt.
Wenn die Prozedur aber auf einen Fehler stößt, wird abgebrochen, die Variable bleibt auf TRUE und der Nutzer kann keine Eingabe mehr machen.
Daher wollte ich im exception-Teil die Variable wieder auf FALSE setzen.

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: Exception auswerten

Beitrag von Scotty »

Mach das besser so:

Code: Alles auswählen

if not Busy then
try
 Busy:=true;
 try
 except
  on E: ...
 end;
finally
  Busy:=false;
end;

markkowalt
Beiträge: 32
Registriert: Sa 13. Aug 2011, 16:15

Re: Exception auswerten

Beitrag von markkowalt »

Ok, das ist dann gleich viel proffessioneller.

Danke sehr!

Antworten