Anwendungsgebiet: PROCEDURE
Kommandobeschreibung
EXIT-PROCEDURE beendet die aktuelle Prozedur und gibt die Ablaufsteuerung an die aufrufende Ebene zurück.
Auch bei ordnungsgemäßem Abschluss der Prozedur, das heißt ohne Fehler, können Fehlerinformationen weitergereicht werden. Dies muss im Operanden ERROR festgelegt werden. Die Angabe ERROR=*YES stößt die Fehlerbehandlung an, wenn SUBCODE1 nicht Null ist.
Im Operanden RESUME-PROGRAM kann vereinbart werden, dass ein geladenes Programm nach Beendigung der Prozedur fortgesetzt wird.
Fehlt das Kommando EXIT-PROCEDURE am Prozedurende, wird die Prozedur automatisch beendet, wenn bei der Ausführung das Prozedurende erreicht ist. Im Fehlerfall wird auch der Fehlercode an den Aufrufer zurückgegeben.
Format
EXIT-PROCEDURE |
ERROR = *NO (...) / *YES(...) *NO(...) SUBCODE2 = 0 / < integer 0..255> ,MAINCODE = CMD0001 / <alphanum-name 7..7> *YES(...) SUBCODE1 = 64 / <integer 0..255> ,SUBCODE2 = 0 / <integer 0..255> ,MAINCODE = SDP0018 / <alphanum-name 7..7> ,RESUME-PROGRAM = *NO / *YES |
Operandenbeschreibung
ERROR =
Returncode, der an den Aufrufer zurückgegeben wird.
ERROR = *NO(...)
Der Returncode der Fehlerklasse „NO-ERROR“ wird zurückgegeben. Mit den Operanden SUBCODE2 und MAINCODE können zusätzliche Informationen übermittelt werden.
SUBCODE2 = 0 / <integer 0..255>
Zusatzinformation zur Fehlerklasse. Voreingestellt ist der Wert Null, d.h. es ist keine Zusatzinformation vorhanden.
MAINCODE = CMD0001 / <alphanum-name 7..7>
Übergibt einen Meldungsschlüssel, dessen Bedeutung sich der Aufrufer mit dem Kommando HELP-MSG-INFORMATION ausgeben lassen kann. Voreingestellt ist
CMD0001, d.h. die Prozedur wurde fehlerfrei beendet.
ERROR = *YES(...)
Der Aufrufer erhält einen Returncode, der einen Fehler anzeigt. Mit den Operanden SUBCODE1, SUBCODE2 und MAINCODE können Fehlerklasse und Zusatzinformationen übermittelt werden. Sofern SUBCODE1 nicht Null ist, wird in der rufenden Prozedur die Fehlerbehandlung angestoßen.
SUBCODE1 = 64 / <integer 0..255>
Zahl, die die Fehlerklasse angibt.
Fehlerklasse 64: „SEMANTIC ERROR“.
SUBCODE2 = 0 / <integer 0..255>
Zusatzinformation zur Fehlerklasse. Null: es ist keine Zusatzinformation vorhanden
MAINCODE = SDP 0018
Defaultwert für den Maincode.
MAINCODE = <alphanum-name 7..7>
Übergibt einen Meldungsschlüssel, dessen Bedeutung sich der Aufrufer mit dem SDF-Kommando HELP-MSG-INFORMATION ausgeben lassen kann (siehe auch Handbuch „Systemmeldungen“ [15]).
RESUME-PROGRAM =
Legt fest, ob ein geladenes Programm nach Beendigung der Prozedur fortgesetzt werden soll.
RESUME-PROGRAM = *NO
Das Programm wird nach Prozedurende nicht fortgesetzt.
RESUME-PROGRAM = *YES
Das Programm wird nach Prozedurende fortgesetzt.
Kommando-Returncode
MIT EXIT-PROCEDURE ERROR = *YES kann das Kommando jeden gegebenen Returncode dem Aufrufer melden. Aus der Sicht des Aufrufers ist dies der Returncode des CALL-PROCEDURE oder INCLUDE-PROCEDURE Kommandos. Jedoch wenn die Ausführung des EXIT-PROCEDURE Kommandos selbst zu einem Fehler führt, so wird nicht zum Aufrufer zurückgekehrt, sondern einer der folgenden Returncodes geliefert und die Fehlerbehandlung innerhalb der Prozedur angestoßen.
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler | |
1 | CMD0202 | Syntaxfehler | |
3 | CMD2203 | Falsche Syntaxdatei | |
32 | CMD0221 | Systemfehler (interner Fehler) | |
130 | SDP0099 | Kein Adressraum mehr verfügbar |