E2126 BREAK, CONTINUE oder EXIT bei FINALLY-Klausel nicht möglich (Object Pascal)

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Object Pascal) - Index

Wenn ein Programm während der Exception-Behandlung in eine finally-Klausel eintritt, ist es nicht möglich, die Klausel mit break, continue oder exit zu verlassen, da die Steuerung an das Exception-Behandlungssystem zurückgegeben werden muss. Wenn in FINALLY durch den Exception-Behandlungsmechanismus eingetreten wird, kann die Klausel nicht mit BREAK, CONTINUE oder EXIT verlassen werden - wenn die finally-Klausel von dem Exception-Behandlungssystem ausgeführt wird, muss die Steuerung auch an das Exception-Behandlungssystem zurückgegeben werden.


  program Produce;

    procedure A0;
    begin
      try
        (* etwas probieren, was fehlschlagen kann *)
      finally
        break;
      end;
    end;

    begin
    end.

Das obige Programm versucht, die finally-Klausel mit einer break-Anweisung zu verlassen. Das ist nicht erlaubt.


  program Solve;

    procedure A0;
    begin
      try
        (* etwas probieren, was fehlschlagen kann *)
      finally
      end;
    end;

    begin
    end.

Die einzige Lösung für dieses Problem besteht darin, die Fehler verursachende Anweisung aus der finally-Klausel herauszunehmen.