Codeblock Onlinehilfe

Raise()

Raise() – Fehler erneut auslösen

Die Funktion löst den letzten Laufzeitfehler erneut aus ("rethrow"). Raise() kann irgendwo innerhalb des Programmblocks 'OnError ... StopSeq' stehen, wobei trotzdem die Ausführung dieses Programmblocks fortgesetzt wird. Die erneute Auslösung des Fehlers erfolgt erst beim Erreichen von 'StopSeq'. Nachfolgende Programmteile werden übersprungen, bis entweder eine außen liegende Fehlerauffangroutine den Fehler erneut behandelt, oder das Programmende erreicht ist. Wird Raise() außerhalb von 'OnError ... StopSeq' ausgeführt, ist diese Funktion undefiniert und hat daher keine Funktion.


Parameter

Beschreibung

lThroughBlocks:L

True - der Laufzeitfehler wird auch erneut ausgelöst wenn dieser im OnError-Teil z.b. in einer if-Anweisung verschachtelt ist
Default = False - der Laufzeitfehler wird nur erneut ausgelöst wenn sich raise() direkt im OnError-Teil befindet
Ab Version 8.1 ist der Default = True

Rückgabewert

Keiner

Beispiel

| x |

startseq,
   startseq,
      WriteLn('Ausgabe 1: Fehler wird ausgelöst'),
      x := 1 / 0,
      WriteLn('Ausgabe 2: Wird nicht mehr angezeigt!'),
   onerror,
      Raise(false),
      WriteLn('Ausgabe 3: Wird angezeigt!'),
   stopseq,
   WriteLn('Ausgabe 4: Wird nicht mehr angezeigt!'),
onerror,
   WriteLn('Ausgabe 5: Wird angezeigt!'),

   if true then
      Raise() // das hat KEINE Wirkung, denn Raise() ist NICHT direkt im onerror Block sondern untergeordnet in einer if-Bedingung
   endif,

stopseq,
WriteLn('Ausgabe 6: Wird angezeigt!'),