Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Kommando-Returncodes

&pagelevel(4)&pagelevel

Die Fehlerbehandlung in S-Prozeduren basiert darauf, dass Kommandos und Anweisungen einen definierten Returncode liefern. Anhand dieses Returncodes kann SDF-P feststellen, ob bei der Kommandoausführung ein Fehler auftrat und welcher Fehler auftrat.

Der Returncode eines Kommandos besteht immer aus drei Komponenten:

Subcode1

Fehlerklasse

Subcode2

Zusatzinformation zu Subcode1

Maincode

Fehler-/Meldungsschlüssel

Welche Returncodes die SDF-P-Kommandos liefern, ist im Abschnitt „Kommando-Returncode“ (Kommando-Returncode ) beschrieben.

Die Komponenten des Returncodes können mit gleichnamigen vordefinierten Funktionen abgefragt werden: SUBCODE2( ), SUBCODE1( ) und MAINCODE( ); der Fehlermeldungstext kann mit der vordefinierten Funktion MSG( ) abgefragt werden (siehe Kapitel „Vordefinierte Funktionen“ (Vordefinierte Funktionen )).

Wenn der Returncode auch dann geprüft werden soll, falls kein Fehler auftrat, muss zuerst das Kommando SAVE-RETURNCODE aufgerufen werden (außer bei IF-CMD-ERROR). Nur dann steht der Returncode zur Verfügung und kann mit den vordefinierten Funktionen ausgewertet werden.

Die Fehlerbehandlung wird automatisch angestoßen, wenn eine Kommandoausführung einen Returncode mit einer Fehleranzeige zurückliefert. SDF-P springt dann zum nächsten IF-BLOCK-ERROR- oder IF-CMD-ERROR-Kommando.

SAVE-RETURNCODE

Mit dem Kommando SAVE-RETURNCODE wird der aktuelle Returncode gesichert, sodass er mit den vordefinierten Funktionen ausgewertet werden kann. Der Programmierer kann so zum Beispiel auf Situationen reagieren, bei denen eine Kommandoausführung zwar ohne Fehler beendet wurde (Subcode1 = 0), Subcode2 und Maincode jedoch ausgewertet werden sollen.

Beispiel

Die folgende Kommandofolge bewirkt, dass in einer Prozedur der Returncode des vorhergehenden Kommandos im Nicht-Fehlerfall ausgewertet werden kann.

/"Kommando, das eine Warnung, aber keinen Fehler liefert"
/SAVE-RETURNCODE
/WRITE-TEXT &(TO-C-LIT(MSG(MAINCODE()))) 

Fehlerbehandlungsblöcke

Die Fehlerbehandlung in strukturierten Prozeduren ist blockorientiert, d.h. sie bezieht sich auf Kommandoblöcke.

Auch die Fehlerbehandlung selbst erfolgt in Blöcken, den Fehlerbehandlungsblöcken. Diese Blöcke sind ausführlich im Abschnitt „Prozedurrumpf erstellen“ beschrieben.

SET-JOB-STEP-Kommando

SDF-P unterstützt aus Kompatibilität zu Nicht-S-Prozeduren das Kommando SET-JOB-STEP (bzw. STEP), das aber in S-Prozeduren nicht verwendet werden sollte. Es hat die gleiche Wirkung wie ein leerer Fehlerbehandlungsblock (IF-BLOCK-ERROR; END-IF), setzt aber zusätzlich einige Auftragsschalter zurück. Außerdem sind mit SET-JOB-STEP Einschränkungen zu beachten (siehe Kapitel „Nicht-S-Prozeduren umstellen“).