Seite durchsuchen nach:
(powered by
FreeFind)
Bemerkung: Manche Browser haben offensichlich Probleme mit CSS. Für die richtige Darstellung dieser Seiten verwenden Sie am besten
Firefox,
Chrome oder
Opera.
REXX Return Codes
Return Codes (kurz RC)
sind numerische Werte (Zahlen) die vom REXX-Interpreter bzw. vom compilierten
REXX-Programm beim Beenden eines Programms oder bei der Feststellung
eines Ausführungsfehlers an den Aufrufer bzw. die Umgebung zurückgegeben
werden. Die Erläuterung und die Bedeutung der Retern-Codes liefert die
Funktion
msg = Errortext(rc) zurück.
REXX Return Codes liegen im Bereich von 0 bis 99. Nicht alle Werte
sind belegt. Die Belegung und Bedeutung der RCs kann vom System zum
System etwas variiren. Die hier vorgestellte Return Codes gelten für
die Windows- und
OS/2 Systeme.
Im ooREXX bekommen manche Fehlernummer zusätzlich erweiterte Informationen in Form
weiteren 1- bis 3-Stelligen Zahlen (s. g. Subcodes). Diese
Information beschreibt näher die Stelle an der der Fehler entstanden ist.
Die Funktion
ErrorText selbst kann keine zweite Fehlermeldung
zurückgeben, deswegen werden diese Informationen über das Objekt, das
durch die Fehlerbedingung SIGNAL ON SYNTAX (wenn sie zutrifft)
verfügbar.
Manche Fehler können nur unter bestimmten Fehlerbedingungen angezeigt werden
bzw. werden unter bestimmten Bedingungen nicht angezeigt:
- Fehler 3 und 5 können nicht vom SIGNAL ON SYNTAX verfolgt werden
- Fehler 4 kann nur vom SIGNAL ON HALT oder CALL ON HALT verfolgt werden
- Fehler 6 und 30 können nur vom SIGNAL ON SYNTAX verfolgt werden,
wenn dieser während der Ausführung der Anweisung INTERPRET entstehen
.
0
Erfolgreiche Ausführung.
Das REXX-programm wurde fehlerfrei ausgeführt und erfolgreich beendet.
3
Abbruch während der Initilaisierung.
Prozedur nicht gefunden oder von der Platte nicht lesbar/ausführbar.
Zugehörigen Subcodes:
- 001 - Abbruch wehrend der Initialisierung; Datei filename ist unlesbar.
- 900 - siehe Meldung.
- 901 - Abbruch wehrend der Initialisierung; Programm program_name wurde nicht gefunden.
- 902 - Fehler beim Schreiben in die Ausgabedatei filename
- 903 - Programm program_name kann nicht vom REXX-Interpreter in dieser Version ausgeführt werden.
- 904 - Abbruch wehrend der Initialisierung; Programm program_name muss "tokenisiert" werden. Zum Ausführen von "nicht-tokenisierten" Prozeduren wird volle Version von Object-REXX benötigt.
4
Programmunterbrechung.
Das System hat die Ausführung des Programms auf Grund
eines Fehlers oder einer Anforderung unterbrochen..
Zugehörigen Subcodes:
- 001 - Ausführung des Programms auf Grund der Abbruchbedingungcondition beendet.
- 900 - siehe Meldung.
5
Ressourcen erschöpft.
Bei der Ausführung des Programs konnte der Interpreter
nicht ausreichend Ressourcen (z. B. Speicher) bekommen.
Zugehöriger Subcode:
6
Unpaarige Kommentarzeichen /* oder Anführungszeichen.
Ein Kommentar oder ein Literal wurde angefangen aber bis zum Ende
des Programms bzw. bis zum Endes des Literals nicht abgeschlossen.
Zugehörigen Subcodes:
- 001 - Unpaarige Kommentarzeichen (/*) in der Zeile line_number.
- 002 - Unpaariges Hochkomma (').
- 003 - Unpaariges Anführungszeichen (").
- 900 - siehe Meldung.
7
WHEN oder OTHERWISE erwartet.
Mindestens eine
WHEN-Klausel und
die
OTHERWISE-Klausel werden in einer
SELECT-Anweisung erwartet. Dieser Return-Code
wird zurückgegeben wenn:
- keine WHEN-Klausel vor der OTHERWISE-Klausel
gefunden wurde oder
- die WHEN-Bedingung falsch ist aber die
OTHERWISE-Klausel nicht vorhanden ist oder auch
- eine Liste der Anweisungen in einer WHEN-Klausel
nicht in einem DO...END-Block
eingeschlossen wurde.
Zugehörigen Subcodes:
- 001 - SELECT in der Zeile line_number braucht eine WHEN-Anweisung.
- 002 - SELECT in der Zeile line_number braucht eine WHEN-, OTHERWISE-, oder END-Anweisung.
- 003 - Alle WHEN-Anweisungen einer SELECT-Anweisung sind falsch; OTHERWISE-Anweisung wurde erwartet.
8
Unerwartetes THEN oder ELSE.
Eine
THEN- oder
ELSE-Klausel für die vorherige
IF- oder
WHEN-Klausel
wurde gefunden. Dieser Return-Code wird auch zurückgegeben, wenn eine
Liste der Anweisungen in der
THEN-Klausel von
einem
IF...THEN...ELSE-Ausdruck
nicht in einem
DO...END-Block
eingeschlossen wurde.
Zugehörigen Subcodes:
- 001 - Für THEN fehlt die dazugehörige IF- oder WHEN-Anweisung.
- 002 - Für ELSE fehlt die dazugehörige THEN-Anweisung.
9
Unerwartetes WHEN oder OTHERWISE.
Eine von diesen beiden Klauseln wurde außerhalb einer
SELECT-Anweisung gefunden. Das konnte
durch einen nicht mit
END abgeschlossenen
DO...END-Block oder durch einen Sprung
mit der
SIGNAL-Anweisung (diese endet
die aktuelle
SELECT-Anweisung)
verursacht werden.
Zugehörigen Subcodes:
- 001 - Für WHEN fehlt die dazugehörige SELECT-Anweisung.
- 002 - Für OTHERWISE fehlt die dazugehörige SELECT-Anweisung.
10
Unerwartetes oder unpassendes END.
Entweder mehr
END-Schlüsselworte als
DO- bzw.
SELECT-Anweisungen
wurden gefunden oder wurden diese Anweisungen nicht mit einem dazu
passenden
END-Schlüsselwort abgeschlossen.
Weitere möglichen Fehlerquellen:
- Ein Sprung mit der SIGNAL-Anweisung
von einer Schleife nach Außen. Diese Anweisung endet implizit jede Schleife.
- Verwendung für einen END-Schlüsselwort
eines Namen der nicht für das passende DO
angewendet wurde.
Zugehörigen Subcodes:
- 001 - Für END fehlt die dazugehörige DO- oder SELECT-Anweisung.
- 002 - Das END folgende Symbol symbol muss entweder dem zusammenpassenden Blocknamen (control_variable in der Zeile line_namber tragen oder wegfallen.
- 003 - END in einem Block darf kein Symbol haben, weil es weder einen LABEL noch ein Steuervariable control_variable gibt.
- 004 - Das Symbol, dass END folgt, muss entweder der Steuervariable (control_variable) bei LABEL- oder SELECT-Anweisung entsprechen oder wegfallen.
- 005 - END muss direkt die THEN-Anweisung folgen.
- 006 - END muss direkt die ELSE-Anweisung folgen.
- 007 - Das zu der SELECT-Anweisung zugehörige END darf kein Symbol bekommen, weil LABEL-Anweisung fehlt.
11
Steuerungsstapelspeicher voll.
Das Program überschreitet die Limitierung für Verschachtelung
von Steuerungsstruckturen (z. B.
DO...END-
oder
IF...THEN...ELSE-Blöcke) bzw. es
generiertr eine endlose Schleife der
INTERPRET-Anweisung
12
Klausel zu lang.
Nur für MVS-REXX verfügbar.
13
Ungültige Zeichen im Programm.
Es wurde ein Zeichen außerhalb eines Literals gefunden, das
an dieser Stelle ungültig ist.
14
Unvollständiges DO/SELECT/IF.
Eine
DO- bzw. eine
SELECT-
Anweisung ohne der abschließenden
END-Klausel
oder eine
IF-Klausel ohne der
THEN-Klausel wurde am Ende des Programs
oder am Ende der
INTERPRET-Anweisung
gefunden. Bei der Fehlersuche kann die Verwendung der Namensvariablen
für die
END-Klausel helfen.
15
Ungültige hexadezimale oder binäre Konstante.
Eine hexadezimale Zeichenkette darf nur aus Ziffern
0..9und Buchstaben
a...f
oder
A...F bestehen. Sie darf keine
führenden oder endenden Leerzeichen haben. Die Leerzeichen dürfen nur
auf der Bytegrenze verwendet werden.
Binäre Zeichenketten dürfen nur aus Ziffern
0
und
1 bestehen. Leerzeichen dürfen nur
auf der 4-Bit-Grenze aufgesetzt werden.
16
Sprungmarke nicht gefunden.
Die Anweisung
SIGNAL wurde für eine
im Programm nicht vorhandene Sprungmarke ausgeführt oder ein
Fehler wurde während der Ausführung des Programms entdeckt, für den die
in der Anweisung
SIGNAL ON angegebene
Spungmarke nich vorhanden ist.
17
Unerwartete PROCEDURE.
Die
PROCEDURE-Anweisung wurde auf der
falschen Position gefunden. Es kann vorkommen, wenn die
PROCEDURE-Anweisung nicht die erste
Anweisung nach dem Aufruf der internen Prozedur ist oder wenn diese
Anweisung nicht durch den Aufruf sonder durch den normalen Ablauf
erreicht wurde.
18
THEN erwartet.
Die
THEN-Klausel muss jede
IF- oder
WHEN-Klausel.
folgen. Der REXX-Interpreter hat an dieser Stelle eine andere Klausel gefunden.
19
Symbol oder Zeichenkette erwartet.
Ein Symbol oder ein Name (eine Zeichenkette) wird in der
ADDRESS-,
CALL-,
NAME-,
SIGNAL-,
TRACE- oder
PARSE-Anweisung
erwartet, wurde aber nicht gefunden. Entweder fehlt das Symbol bzw. der Name
oder wurde irrtümlich ein Sonderzeichen (wie z. B. eine Klammer)
eingeführt.
20
Symbol erwartet.
Ein Symbol wird in der
CALL ON-,
CALL OFF-,
END-,
ITERATE-,
LEAVE-,
NUMERIC-,
PARSE-,
SIGNAL ON-,
oder
SIGNAL OFF-Anweisung oder eine
Symbol- bzw. eine Referenzliste wird in der
DROP-oder
EXPOSE-Anweisung
erwartet, wurde aber nicht gefunden. Entweder fehlt das Symbol oder
hat der REXX-Interpreter ein anderes Token gefunden.
21
Ungültige Daten am Ende der Klausel.
Klauseln, die ohne einen Ausdruck oder einen Symbol verwendet werden
müssen, wie z. B.
SELECT oder
NOP,
wird von einem Token anderem als Kommentar gefolgt.
22
Ungültiges Literal.
Ein Literal beinhaltet ungültige Zeichen. Das könnte geschehen,
weil manche Zeichen nicht möglich sind oder weil der erweiterte
Zeichensatz verwendet wird und manche Zeichenkombinationen nicht
erlaubt sind.
23
Ungültiger Datensatz.
Ein Datensatz, der ein Ergebnis eines Ausdruck ist, beinhaltet
ungültige Zeichen.Das könnte geschehen, weil manche Zeichen nicht
möglich sind oder weil der erweiterte Zeichensatz verwendet wird
und manche Zeichenkombinationen nicht erlaubt sind.
24
Ungültige TRACE-Anforderung.
Diese Fehlermeldung wird ausgegeben wenn:
- Die Option der TRACE-Anweisung
nicht mit A, C,
E, F,
I, L,
N, O,
oder R startet.
- Während einer inaktiven Debugging wurde eine nicht ganze Zahl
eingegeben.
25
Ungültiges Hilfsschlüsselwort gefunden.
Auf Stelle eines Hilfsschlüsselwortes wurde ein unerwertetes Token
entdeckt. Zum Beispiel, die
NUMERIC-Anweisung
muss entweder vom Token
DIGITS oder
FUZZ oder
FORM
gefolgt sein.
26
Eine Ganzzahl erwartet.
Es wurde ein Ausdruck gefunden, deren Ergebnis keine an dieser
Stelle erwartete Ganzzahl ist oder die Limitierung der
NUMERIC DIGITS-Anweisung wurde
überschritten (Standardwert: 999 999 999).
27
Ungültige DO Syntax.
Ein syntaktischer Fehler in einer
DO-Anweisung
wurde entdeckt. Zum Beispiel mehrfaches Verwenden der Hilfsschlüsselwörter
BY,
TO,
FOR,
WHILE
oder
UNTIL oder falsche bzw. keine
Eingabe der Steuervariablen.
28
Ungültiges LEAVE oder ITERATE.
Die
LEAVE- oder
ITERATE-Anweisung
wurde auf der falschen Stelle angewendet: Entweder ausserhalb einer
aktiven Schleife oder der in der Anweisung angegebene Name stimmt
mit keiner Steuervarieblen von irgendeiner aktiven Schleife.
29
Umgebungsname zu lang.
Der in der
ADDRESS-Anweisung eingegebene
Umgebungsname ist zu lang für das System auf dem der Interpreter läuft.
30
Name oder Literal zu lang.
Ein Variablenneme, ein Label, oder ein Literal ist länger als implementierter
Limit von 250 Zeichen. Es gilt auch für die zugewisenen Namen z. B.
einer Punktvariablen. Mögliche Ursachen sind:
- Unerwartete Indexierung einer Punktvariablen
- Vergessen der abschließenden Hochkoma oder Anführungszeichen
für eine Zeichenkette
- Verwendung eines Apostrophs in einer Zeichenkette. Z. B. 'don't'
an Stelle von 'don''t' oder "don't"
31
Name beginnt mit Nummer oder "." (Punkt).
Es wurde eine Variable entdeckt, deren Name mit einer Ziffern oder
mit einem Punkt (
.) anfängt.
Dieser Variablen kann kein Wert zugeordnet werden, weil man im
ooREXX keine numerische Konstanten neu definieren kann.
33
Ungültiges Ausdrucksergebnis.
Das Ergebnis eines Ausdrucks ist nicht der erwartete Wert oder Datentyp.
34
Logischer Wert nicht 0 oder 1.
In der
IF-,
WHEN-,
DO WHILE- oder
DO UNTIL-Anweisung wurde ein Ausdruck gefunden, deren Ergebnis nicht
0
oder
1 ist. Jeder Wert einer logischen Abfrage musst den Wert
0
oder
1 verweisen. Zum Beispiel die Anweisung
If value Then Call Continue
Else Exit rc
funktioniert nur wenn der Wert von
value entweder
0
(beenden des Programms) oder
1 ist (weitermachen mit der Prozedur
Continue).
35
Ungültiger Ausdruck.
Ein Ausdruck beinhaltet syntaktischen Fehler, zum Beispiel:
- Ein erwarteter Ausdruckist fehlt.
- Ein Ausdruck wurde mit einem Oparatorzeichen beendet.
- Zwei Operatoren wurden nacheinander angewendet.
- Eine abschließende (rechte) Klammer wurde vergessen.
- Sonderzeichen wurden in einem Ausdruck ohne Hochkomata oder Einführungszeichen angewendet.
36
Unpaariges "(" oder "[" im Ausdruck.
Abschließende Klammer "
)" oder abscließende eckige Klammer "
]"
wurde nicht gefunden. Um eine einfache Klammer in einem Befehl anzuwenden
muss sie in den Anführungszeichen oder Hochkommata angeschlossen werden.
37
Unerwartetes ")", "]" oder ",".
Entweder die Komma "
," oder die abschließende (rechte) Klammer "
)" oder
die abschließende (rechte) eckige Klammer "
]" wurden
ausserrhalb einer Anweisung bzw. außerhalb eines Funktionsaufrufs gefunden. Zum Beispiel
diese falschgeschriebene Anweisung:
Say Bitte N, J oder Leerzeichen eingeben
muss so geschrieben werden:
Say "Bitte N, J oder Leerzeichen eingeben"
38
Ungültige Schablone oder Muster.
Entweder ein Sonderzeichen wurde in einer Schablone der
PARSE-Anweisung
gefunden (zum Beispiel "
%" oder die Syntax
eines dynamischen Schablonenmusters ist falsch (zum Beispiel kein Symbol
wurde hinter der linken Klammer der variablen Schablone gefunden).
Dieser Retur-Code wird auch ausgegeben, wenn das Schlüsselwort
WITH
der Anweisung
PARSE VALUE vergessen wurde.
39
Überlauf im Auswertungsstapelspeicher.
Eine Anweisung ist für den REXX-Interpreter zu komplex aufgebaut.
40
Inkorrekter Routinenaufruf.
Ein inkorrekter Aufruf einer REXX-(Sub)Routine wurde entdeckt. Mögliche Ursachen
sind u. A.:
- Falsche Aufrufparameter (Argumente) wurden an eine eingebaute Funktion
übergeben.
- Zu viele Argumente wurden an eine eingebaute, interne oder externe Funktion übergeben
- Eine externe Routine ist nicht mit dem REXX-Interpreter kompatibel.
- Eine nicht existierende Routine worde aufgerufen
Die letzte Möglichkeit kann entstehen, wenn ein Operator vor der
linken Klammern "
%" in einem Ausdruck
vergessen wurde, zum Beispiel es wurde
Time(a+b)
an Stelle von
Time*(a+b) geschrieben.
41
Fehler bei der arithmetischen Konvertierung .
Ein Argument in einem arithmetischen Ausdruck ist keine gültige
Zahl oder besitzt einen Exponent, der ausserhalb des erlaubten
Bereichs von -999 999 999 bis +999 999 999 liegt.
Üblichen Ursachen: es wurde ein Variablenname falsch geschrieben
oder die Anfürungszeichen für den arithmetischen Operator in einem
Ausdruck wurden vergessen.
42
Arithmetischer Überlauf/Unterlauf.
Ergebnis eines arithmetischen Ausdrucks braucht einen Exponent,
der außerhalb des erlaubten Bereichs von neun Ziffern liegt
(größer als 999 999 999 oder kleiner als -999 999 999 ist).
Dieser Fehler kann vorkommen beim Versuch einen Ausdruck zu
berechnen z. B. beim dividieren durch Null oder bei der iterativen
DO-Schleife.
43
Routine nicht gefunden.
Eine Funktion, in einer Anweisung oder ein Unterprogramm, das mit
der
CALL-Instruktion aufgerufen wurde,
kann nicht im aktuellen Suchpfad gefunden werden. Mögliche Ursachen:
- Der spezifizierte Prozedurname oder die Sprungmarke ist in dem
Programm nicht vorhanden.
- Es ist keine eingebaute Funktion (built-in function).
- Der Interpreter kann diese Prozedur ausserhalb des Programms
nicht finden.
Mögliche Ursache kann ein Tippfehler im Funktionsnamen sein oder,
wenn der Fehler an einer Stelle entstanden ist, wo kein Aufruf erwartet
war, das Zeichen für die linke Klammer wurde ohne des voranstehenden Operators
bzw. des Trennzeichens angewendet. Zum Beispiel die arithmetische
Anweisung für
a*(b+c) wurde ohne
Multiplikationsoperator "
*" angewendet:
a(b+c).
44
Eine Funktion gab keine Daten zurück.
Eine Routine wurde in einer Anweisung (als Funktion) aufgerufen.
Diese Routine läuft fehlerfrei ab, aber liefert keine Daten zum
verwenden in der Anweisung zurück. Entweder wurde ein Programm
aufgerufen, das als ein Unterprogramm ein Befehl programmiert wurde, als Funktion aufgerufen
oder wurde in dieser Routine vergessen einen Wert der
RETURN-Anweisung
zuzuordnen. Eine Funktion muss immer einen Wert zurückgeben, auch wenn es
"nur" eine Nullzeichenkette (
Zero-String) ist.
45
Bei der RETURN-Anweisung sind keine Daten angegeben.
Ein REXX-Programm wurde als Funktion aufgerufen, aber es endet ohne irgendwelche Daten
über die
RETURN-Anweisung an den Aufrufer zurückzuliefern.
46
Ungültiger Variablenverweis.
Die Syntax bei der variablen Referenzierung innerhalb der Anweisung
ARG,
DROP,
EXPOSE,
PARSE,
PULL oder
PROCEDURE
ist fehlerhaft. Variable Referenzierung erlaubt eine Liste der Variablen
über eine Variable an diese Anweisungen anzuhängen. Die
Variable, die die Variablenliste beinhaltet, muß in runden Klammern
angegeben werden. Zum Beispiel:
...
adrListe = "nachname vorname strasse nummer plz ort"
...
SayAddress: Prozedure Expose (adrListe)
...
Diese RC deutet darauf hin, dass entweder die rechte Klammer vergessen
wurde oder der Name der Variablen falsch ist (nicht existiert).
47
Unerwatere Label.
Es wurde eine Label (Sprungmarke) innerhalb einer
INTERPRET-Anweisung
angewendet oder wehrend der interaktiven Programmverfolgung (
interactive trace)
eingegeben.
48
Ausfall im Systemdienst.
Der REXX-Interpreter hat die Verarbeitung des Programs auf Grund
eines Fehlers in Systemdiensten, wie zum beispiel Datenein- bzw.
Ausgabe, oder Bearbeitung einer externen Datenwarteschlange, angehalten.
49
Interpretationsfehler.
Ein schwerwiegender Fehler wurde wehrend des Ausführen oder wehrend
der internen Konsistenzprüfung des Programms .
88
Falscher Aufrufparameter.
Ein Argument, das beim Aufruf an eine Funktion oder Prozedur übergeben
wurde ist fehlerhaft.
89
Variable erwartet.
Eine Anweisung erwartet eine Variable, die durch diese Anweisung
zugeordnet bzw. verarbeitet werden könnte.
90
Externer Name nicht gefunden.
Eine externe Klasse, Methode oder Routine (die mit der Option
EXTERNAL der Anweisung
::CLASS,
::METHOD oder
::ROUTINE
oder als zweiter Parameter von
NEW angegeben wurde)
kann nicht gefunden werden.
91
Kein Folgeobjekt.
Eine Methode liefert den erwarteten Ergebnissobjekt nicht zurück.
92
OLE-Fehler.
Entweder ein unbekannter
OLE-Fehler
wurde entdeckt oder wurde ein Fehler bei der Konvertierung eines
OLE-Objekts in ein REXX-Objekt gefunden.
93
Inkorrekter Methodenaufruf.
Die angegebene Methode, eingebaute Funktion oder externe Routione
existiert zwar, wurde aber auf inkorrektre Weise verwendet.
97
Objekt-Methode nicht gefunden.
Im Objekt ist die angegebene Methode nicht vorhanden. Oft ist eine
nicht initialisierte Variable für diesen Fehler verantwortlich.
98
Ausführungsfehler.
Der REXX-Interpreter entdeckt einen spezifischen Fehler wehrend der
Ausführung des Programms.
99
Umsetzungsfehler.
Ein Syntax-Fehler wurde entdeckt.
Your privacy: This web site has no cookies, no advertising and does not provide access data to anyone for any reason.
Copyright © Janosch R. Kowalczyk 1999, 2009. All rights reserved.
Most recent revision on 22 Dec 2009 (356) - 13:13:32