Mit dieser Option werden die Prüfroutinen des Laufzeitsystems aktiviert.
Format
|
RUNTIME-CHECKS = *NONE
Es werden keine Prüfroutinen des Laufzeitsystems beansprucht.
RUNTIME-CHECKS = *ALL
Alle in der PARAMETERS-Struktur genannten Prüfroutinen des Laufzeitsystems werden aktiviert.
RUNTIME-CHECKS = *PARAMETERS(...)
TABLE-SUBSCRIPTS = *NO / *YES
Ist YES angegeben überprüft das Laufzeitsystem die Einhaltung von Tabellengrenzen (sowohl bei Subskribierung als auch bei Indizierung).
Geprüft wird, ob
Indexwerte größer als Null sind,
Indexwerte nicht größer als die Anzahl von Elementen in den entsprechenden Dimensionen sind,
Indexwerte nicht größer als zugehörige Werte in DEPENDING ON-Feldern sind,
Werte in DEPENDING ON-Feldern innerhalb der Grenzen liegen, die in entsprechenden OCCURS-Klauseln definiert sind.
Das Laufzeitsystem reagiert im Fehlerfall mit der Meldung COB9144 bzw. COB9145. Das Programm bricht ab, wenn in der RUNTIME-OPTIONS-Option ERROR-REACTION = TERMINATION angegeben wurde.
FUNCTION-ARGUMENTS = *NO / *YES
Bei Angabe von YES werden zur Ablaufzeit die Funktionsargumente bezüglich Wertebereich, Anzahl und Länge überprüft. Treten ungültige Werte auf, wird, je nach Art des Fehlers, eine der Meldungen COB9123, COB9124, COB9125, COB9126 oder COB9127 ausgegeben; das Programm bricht ab, wenn in der RUNTIME-OPTIONS-Option ERROR-REACTION = TERMINATION angegeben wurde.
PROC-ARGUMENT-NR = *NO / *YES
Mit YES wird beim Aufruf eines getrennt übersetzten COBOL-Unterprogramms geprüft, ob die Anzahl der übergebenen Parameter mit der Anzahl der erwarteten Parameter übereinstimmt. Stimmt die Anzahl nicht überein, erfolgt die Meldung COB9132; das Programm bricht ab, wenn in der RUNTIME-OPTIONS-Option
ERROR-REACTION = TERMINATION angegeben wurde. Die Prüfung ist nur wirksam, wenn das aufgerufene Programm mit dieser Option und das aufrufende Programm mit einer Compilerversion ≥ 2.0 übersetzt wurde.
RECURSIVE-CALLS = *NO / *YES
Bei Angabe von YES wird die Aufrufhierarchie einer Programmablaufeinheit überprüft; d.h., das Laufzeitsystem prüft, ob ein getrennt übersetztes Unterprogramm rekursiv aufgerufen wird, also noch aktiv ist. Liegt ein rekursiver Aufruf vor und enthält die CALL-Anweisung keine ON EXCEPTION-Angabe, wird der Programmlauf mit der Fehlermeldung COB9157 abgebrochen.
Jedes Programm, das ein CALL und/oder CANCEL enthält, sollte mit
RECURSIVE-CALLS=YES übersetzt werden.
Die Option wird für Übersetzungseinheiten, die keine Programme sind, ignoriert. Für Programme mit RECURSIVE-Angabe in der PROGRAM-ID wird sie abgewiesen (bei YES).
REF-MODIFICATION = *NO / *YES
Die Angabe von YES bewirkt, dass das Laufzeitsystem die Einhaltung von Datenfeldgrenzen für teilfeldselektierte Bezeichner überprüft. Sind Datenfeldgrenzen nicht eingehalten, erfolgt die Fehlermeldung COB9140 und das Programm bricht ab, wenn in der RUNTIME-OPTIONS-Option ERROR-REACTION=TERMINATION angegeben wurde.