[Gelöst] try/except - Keyword "on" nicht gefunden

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
TerribleCode
Beiträge: 38
Registriert: Di 18. Nov 2014, 22:50
OS, Lazarus, FPC: Windows 7 [x64]; Lazarus 1.6.4 [i386-win32]; FPC 3.0.2 [win32 i386]
CPU-Target: 64Bit

[Gelöst] try/except - Keyword "on" nicht gefunden

Beitrag von TerribleCode »

Hallo zusammen 8)

Ich habe gestern mein Lazarus von 1.6 auf 1.6.4 aktualisiert. Seit dem kann ich Exceptions nicht mehr wie folgt abfangen:

Code: Alles auswählen

try
  // world peace
except
  on E: Exception do Sleep(1);
end;

Bei diesem Code bekomme ich seit dem Update vom Compiler die Fehlermeldung:

Code: Alles auswählen

Error: Identifier not found "on"

FPC kennt das Keyword on also scheinbar nicht mehr...

Sowohl bei Version 1.6 als auch bei 1.6.4 verwenden ich Object Pascal.
Ich habe in den Release-Notes von FPC als auch von LAZ nichts finden können, was mein Problem erklärt.

Kann mir einer von euch sagen was ich falsch mache?
Zuletzt geändert von TerribleCode am Fr 14. Jul 2017, 17:14, insgesamt 1-mal geändert.

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: [Q] Keyword "on" nicht gefunden (Lazarus 1.6.4)

Beitrag von marcov »

Auch in ein neues Projekt ?

TerribleCode
Beiträge: 38
Registriert: Di 18. Nov 2014, 22:50
OS, Lazarus, FPC: Windows 7 [x64]; Lazarus 1.6.4 [i386-win32]; FPC 3.0.2 [win32 i386]
CPU-Target: 64Bit

Re: Auch in ein neues Projekt ?

Beitrag von TerribleCode »

Ja auch in Projekten die ich mit der neuen Version erstellt habe :(

TerribleCode
Beiträge: 38
Registriert: Di 18. Nov 2014, 22:50
OS, Lazarus, FPC: Windows 7 [x64]; Lazarus 1.6.4 [i386-win32]; FPC 3.0.2 [win32 i386]
CPU-Target: 64Bit

Beispielprojekt

Beitrag von TerribleCode »

Ich werde irre!
Ich wollt jetzt ein Beispielprojekt erstellen und da geht es wieder :shock:
Ich versuche das Problem nun zu reproduzieren

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [Q] Keyword "on" nicht gefunden (Lazarus 1.6.4)

Beitrag von Mathias »

Kannst du das Project mit dem Fehler mal hochladen, oder ist des etwas sehr komplexes ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

TerribleCode
Beiträge: 38
Registriert: Di 18. Nov 2014, 22:50
OS, Lazarus, FPC: Windows 7 [x64]; Lazarus 1.6.4 [i386-win32]; FPC 3.0.2 [win32 i386]
CPU-Target: 64Bit

Fehler gefunden

Beitrag von TerribleCode »

Das wird nicht nötig sein Mathias, denn ich habe den Fehler gefunden.

Man darf wenn man einen try/except-Block in Verbindung mit dem on Keyword verwendet, scheinbar keinen Code vor dem on-Statement verwenden.

FUNKTIONIERT NICHT:

Code: Alles auswählen

try
  // world peace
except
  Err := True; // <-- Fehlerquelle
  on E: Exception do Sleep(1);
end;

FUNKTIONIERT:

Code: Alles auswählen

try
  // world peace
except
  on E: Exception do Sleep(1);
end;

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [Gelöst] try/except - Keyword "on" nicht gefunden

Beitrag von Mathias »

Man darf wenn man einen try/except-Block in Verbindung mit dem on Keyword verwendet, scheinbar keinen Code vor dem on-Statement verwenden.

Wieso ist es dann mit deinem alten Lazarus gegangen ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

TerribleCode
Beiträge: 38
Registriert: Di 18. Nov 2014, 22:50
OS, Lazarus, FPC: Windows 7 [x64]; Lazarus 1.6.4 [i386-win32]; FPC 3.0.2 [win32 i386]
CPU-Target: 64Bit

Re: Wieso ist es dann mit deinem alten Lazarus gegangen ?

Beitrag von TerribleCode »

Mathias hat geschrieben:Wieso ist es dann mit deinem alten Lazarus gegangen ?

Ist es nicht. Ich habe gerade nochmal in den alten Code geschaut und dort verwende ich im except-Block tatsächlich nur on.
Ich hätte, um die ganze Verwirrung zu vermeiden, das Projekt am besten direkt mal so wie es ist, ohne Änderungen, kompilieren sollen :roll:

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Wieso ist es dann mit deinem alten Lazarus gegangen ?

Beitrag von wp_xyz »

TerribleCode hat geschrieben:Ich hätte, um die ganze Verwirrung zu vermeiden, das Projekt am besten direkt mal so wie es ist, ohne Änderungen, kompilieren sollen :roll:

Genau, das ist Grundregel Nr. 2. Grundregel Nr. 1 ist aber, nach einer Compiler-etc-Umstellung zuerst eine Kopie des Ist-Zustands zu machen, und diese nie mehr zu verändern. Oder noch besser, mit einem Versionskontrollsystem wie svn oder git zu arbeiten, damit man zu jeden Zustand zurückgehen kann. Was ist, wenn die neue Lazarus-Version neue Properties einführt? Nachdem du ein altes Projekt geladen und gespeichert hast, stehen die neuen Properties evtl in den lfm-Dateien, ohne dass du etwas davon mitkriegst. Wenn nun irgendetwas Probleme macht, und du möchtest zur alten Lazarus-Version zurückgehen, kann diese Version die neuen Dateien nicht mehr lesen

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [Gelöst] try/except - Keyword "on" nicht gefunden

Beitrag von Mathias »

Genau, das ist Grundregel Nr. 2. Grundregel Nr. 1 ist aber, nach einer Compiler-etc-Umstellung zuerst eine Kopie des Ist-Zustands zu machen

Ich mache immer zwischendurch eine Zip von meinen Sourcen, dies hat misch schon vielmals gerettet. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten