Das Kommando EXIT-BLOCK bricht die Verarbeitung der Kommandofolge des Blocks ab und springt zum Abschlusskommando des Blocks. Anschließend wird der Prozedurlauf mit dem Kommando fortgesetzt, das auf das Blockabschlusskommando folgt.
Im Aufruf des EXIT-BLOCK-Kommandos kann der Block, der abgebrochen werden soll, implizit adressiert werden über den voreingestellten Wert *LAST oder explizit über den Namen der Marke, die einem Blockeinleitungskommando vorangestellt ist.
Beispiel
/LOOP: WHILE (BED < 9) /... /IF (EING='*END') / EXIT-BLOCK LOOP /END-IF /... /END-WHILE /"Hier geht es nach Ausführung von EXIT-BLOCK weiter"
Beim Sprung mit EXIT-BLOCK kann die Marke des aktuellen Blocks angegeben werden (wie im Beispiel oben) oder die Marke eines umgebenden Blocks.
Beispiel
/LOOPWH: WHILE (BED<9) /... /LOOPFOR: FOR I=*LIST(LISTE) /... / IF (BED=TRUE) /... / EXIT-BLOCK LOOPWH /... / END-IF /... / END-FOR /... /END-WHILE /"Hier geht's weiter nach EXIT-BLOCK"
Mit dem Operanden *ALL können alle umgebenden Blöcke abgebrochen werden. Der Prozedurlauf wird dann mit dem Kommando fortgesetzt, das auf der obersten Prozedurebene dem END-Kommando folgt, das den äußersten Block abschließt. Der Einsatz von EXIT-BLOCK *ALL ist zum Beispiel sinnvoll in Fehlerbehandlungsblöcken, wenn die Prozedur nach einem Fehler nicht fortgesetzt, aber korrekt beendet werden soll.
Hinweis
Wird /EXIT-BLOCK ohne Marke in einem IF-Block geschrieben, wird die Prozedur nach dem zugehörigen END-IF fortgesetzt.
Die Adressierung über die Voreinstellung BLOCK=*LAST ist somit nur sinnvoll, wenn die Sprungbedingung im Kommando EXIT-BLOCK selbst angegeben wird.