Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Art der Fehlerbehandlung einstellen

&pagelevel(5)&pagelevel

Die Fehlerbehandlung kann entweder kompatibel zum bisherigen Spin-Off-Verhalten ausgelöst werden oder auf der Basis der Kommando-Returncodes. Sie wird über Fehlerbehandlungsblöcke durchgeführt, die im Prozedurrumpf definiert werden.

Im Operanden ERROR-MECHANISM des Kommandos SET-PROCEDURE-OPTIONS kann die Art der Fehlerbehandlung eingestellt werden. Als Operandenwerte stehen *SPIN-OFF-COMPATIBLE und *BY-RETURNCODE zur Verfügung:

  • Ist *SPIN-OFF-COMPATIBLE gesetzt, wird die Fehlerbehandlung kompatibel zum Spin-Off-Verhalten ausgelöst. Subcode1 wird nicht berücksichtigt. Damit wird sichergestellt, dass das Fehlerverhalten von S-Prozeduren, die bereits in BS2000 V10.0 erstellt wurden, kompatibel bleibt. *SPIN-OFF-COMPATIBLE ist die Standardeinstellung.

  • Ist *BY-RETURNCODE gesetzt, wird die Fehlerbehandlung ausgelöst, wenn der Subcode1 des letzten Kommando-Returncodes ungleich Null ist. Das Spin-Off-Verhalten wird nicht berücksichtigt. Die Einstellung *BY-RETURNCODE ist geeignet für Prozeduren, in denen Kommandos mit eigenen Kommando-Returncodes verwendet werden. Dadurch wird eine differenzierte Programmierung möglich.

Beispiel 1 (für ERROR-MECHANISM=*SPIN-OFF-COMPATIBLE)

/SET-PROCEDURE-OPTIONS ERROR-MECHANISM=*SPIN-OFF-COMPATIBLE
/...
/PRINT-FILE DOES-NOT-EXIST
/...
/
/IF-BLOCK-ERROR
/                 "IF-BLOCK-ERROR wird nicht angestoßen, da"
/                 "/PRINT-FILE (mit korrekter Syntax) keinen Spin-Off"
/                  "erzeugt"
/END-IF
/...

Beispiel 2 (für ERROR-MECHANISM=*BY-RETURNCODE)

/SET-PROCEDURE-OPTIONS ERROR-MECHANISM=*BY-RETURNCODE
/...
/PRINT-FILE DOES-NOT-EXIST
/...
/IF-BLOCK-ERROR
/                   "IF-BLOCK-ERROR wird gemäß den Returncodes"
/                   "für /PRINT-FILE angestoßen"
/END-IF
/...

Fehlerverhalten bei Versionswechsel

Obwohl das Verhalten der meisten Kommandos mit der jeweiligen Version zusammenhängt, ist eine Umstellung eines Kommandos auf definierte Kommando-Returncodes nicht von einer BS2000-Version abhängig, sondern von der Version des Systemprodukts bzw. Subsystems.

Bei ERROR-MECHANISM=*BY-RETURNCODE kann sich durch Umstellung eines Systemprodukts auf Kommando-Returncodes das Fehlerverhalten der betreffenden Kommandos in derselben BS2000-Version ändern.

Fehlerverhalten bei Programmen

Die Fehlerbehandlung betrifft auch Anwenderprogramme; diese können eigene Returncodes liefern. Für Programme, die keinen eigenen Returncode liefern, simuliert SDF einen Returncode analog der Spin-Off-Behandlung.

Standardmäßig erfolgt eine Fehlerbehandlung durch SDF-P erst nach Programmbeendigung. Durch die Voreinstellung *SPIN-OFF-COMPATIBLE erfolgt die Fehlerbehandlung nicht auf Basis des Returncodes (siehe Makro CMDRC im Handbuch „SDF-A“ [16]), sondern durch den Spin-Off auslösenden Parameter UNIT=STEP des Makros TERM (siehe Handbuch „Makroaufrufe an den Ablaufteil“ [7]).

Die Einstellung PROPAGATE-STMT-RC=*TO-CMD-RC in einem BEGIN-Block (siehe Kommando BEGIN-BLOCK) ermöglicht die SDF-P-Fehlerbehandlung und Auswertung von Returncodes während des Programmlaufs. Die SDF-P-Fehlerbehandlung erfolgt dann unabhängig von der Einstellung für ERROR-MECHANISM nur auf Basis des Returncodes.