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 |
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!'),