Verweis auf globale Programm-Routine
Die globale Routine ist für die Bearbeitung aller überhaupt vorkommenden Fehler zuständig. Die Adresse ist in diesem Fall in Klammern einzuschließen, also EXIT=(adr).
Die Exit-Routine kann die FCB-Felder ID1XITB und ID1ECB auswerten: ID1XITB zeigt die Fehlerursache an, ID1ECB enthält einen DVS-Fehlerschlüssel (siehe auch Abschnitt „Fehlermeldungsschlüssel“ im Anhang des Handbuches „DVS-Makros“ [1] ).
Die Routine kann auch genutzt werden, das Programm ordnungsgemäß zu beenden (Dateien schließen!) oder Speicherabzüge anzufordern (Makros CDUMP2
oder TERM, DUMP=Y
, siehe Handbuch „Makroaufrufe an den Ablaufteil“ [2]).
Verweis auf den EXLST-Makroaufruf
Mit der Exit-Adresse im FCB kann auch ein EXLST-Makroaufruf adressiert werden.
In diesem Fall ist im EXIT-Operanden die Adresse ohne Klammern anzugeben: EXIT=adr. Der EXLST-Makroaufruf kann genutzt werden, um einerseits spezifische Ereignisse/Fehler abzufragen und Sondermaßnahmen einzuleiten, während andere Ereignisse/Fehler global in einer gemeinsamen Routine behandelt werden.
Ereignisse, für die kein separater EXLST-Ausgang definiert werden soll, können über den COMMON-Operanden „abgefangen werden“. Die COMMON-Routine führt dann Fehlerbehandlung usw. durch. Gleichzeitig wird durch Definition des COMMON-Operanden auch Programmabbruch vermieden, wenn ein Ereignis eintritt, für das kein separater EXLST-Ausgang versorgt wurde.
Hinweis
Wird zum OPEN-Zeitpunkt bei der FCB-Validierung erkannt, dass der FCB nicht korrekt ist (z.B. Speicherbereich nicht allokiert, mit derselben FCB-Adresse ist bereits eine Dateibearbeitung aktiv, usw.) kommt dieser Mechanismus nicht zum tragen. In einem solchen Fall erfolgt immer eine abnormale Programmbeendigung mit dem Fehlerschlüssel DMS0D9F
.