The error numbers produced by syntax errors during the processing of Rexx programs are all in the range 1 to 99. Errors are raised in response to conditions, for example, SYNTAX, NOMETHOD, and PROPAGATE. When the condition is SYNTAX, the value of the error number is placed in the variable RC when SIGNAL ON SYNTAX is trapped.
You can use the ERRORTEXT built-in function to return the text of an error message.
Some errors have associated subcodes. A subcode is a one- to three-digit decimal extension to the error number, for example, 115 in 40.115. When an error subcode is available, additional information that further defines the source of the error is given. The ERRORTEXT built-in function cannot retrieve the secondary message, but it is available from the condition object created when SIGNAL ON SYNTAX traps an error.
Some errors are only or not displayed under certain conditions:
Errors 3 and 5 cannot be trapped by SIGNAL ON SYNTAX.
Error 4 can only be trapped by SIGNAL ON HALT or CALL ON HALT.
Errors 6 and 30 can only be trapped by SIGNAL ON SYNTAX if they occur during the execution of an INTERPRET instruction.
Explanation:
The REXX program could not be read from the disk.
The associated subcodes are:
Failure during initialization: File "filename" is unreadable
message
Failure during initialization: Program "program" was not found
Error writing output file "file"
Program "program_name" cannot be run by this version of the REXX interpreter
Failure during initialization: Program "program" needs to be tokenized. To run untokenized scripts you need a full version of Object REXX.
Explanation:
The system interrupted the execution of your program because of an error or a user request.
The associated subcodes are:
Program interrupted with condition condition
message
Explanation:
While trying to execute a program, the language processor was unable to get the resources it needed to continue. For example, it could not get the space needed for its work areas or variables. The program that called the language processor might itself have already used up most of the available storage. Or a request for storage might have been for more than the implementation maximum.
The associated subcodes are:
message
Explanation:
A comment or literal string was started but never finished. This could be because the language processor detected:
The end of the program (or the end of the string in an INTERPRET instruction) without finding the ending "*/" for a comment or the ending quotation mark for a literal string
The end of the line for a literal string.
The associated subcodes are:
Unmatched comment delimiter ("/*") on line line_number
Unmatched single quote (')
Unmatched double quote (")
message
Explanation:
At least one WHEN construct (and possibly an OTHERWISE clause) is expected within a SELECT instruction. This message is issued if any other instruction is found or there is no WHEN construct before the OTHERWISE or all WHEN expressions are false and an OTHERWISE is not present. A common cause of this error is if you forget the DO and END around the list of instructions following a WHEN. For example:
WRONG RIGHT Select Select When a=c then When a=c then DO Say 'A equals C' Say 'A equals C' exit exit Otherwise nop end end Otherwise nop end
The associated subcodes are:
SELECT on line line_number requires WHEN
SELECT on line line_number requires WHEN, OTHERWISE, or END
All WHEN expressions of SELECT are false; OTHERWISE expected
Explanation:
A THEN or an ELSE clause was found that does not match a corresponding IF or WHEN clause. This often occurs because of a missing END or DO...END in the THEN part of a complex IF...THEN...ELSE construction. For example:
WRONG RIGHT If a=c then do; If a=c then do; Say EQUALS Say EQUALS exit exit else end Say NOT EQUALS else Say NOT EQUALS
The associated subcodes are:
THEN has no corresponding IF or WHEN clause
ELSE has no corresponding THEN clause
Explanation:
A WHEN or OTHERWISE was found outside of a SELECT construction. You might have accidentally enclosed the instruction in a DO...END construction by leaving out an END, or you might have tried to branch to it with a SIGNAL instruction (which does not work because the SELECT is then ended).
The associated subcodes are:
WHEN has no corresponding SELECT
OTHERWISE has no corresponding SELECT
Explanation:
More ENDs were found in your program than DO or SELECT instructions, or the ENDs did not match the DO or SELECT instructions. This message also occurs if you try to transfer control into the middle of a loop using SIGNAL. In this case, the language processor does not expect the END because it did not process the previous DO instruction. Remember also that SIGNAL deactivates any current loops, so it cannot transfer control from one place inside a loop to another.
Another cause for this message is placing an END immediately after a THEN or ELSE subkeyword or specifying a name on the END keyword that does not match the name following DO. Putting the name of the control variable on ENDs that close repetitive loops can also help locate this kind of error.
The associated subcodes are:
END has no corresponding DO or SELECT
Symbol following END ("symbol") must match block specification name ("control_variable") on line line_number or be omitted
END corresponding to block on line symbol must not have a symbol following it because there is no LABEL or control variable; found "line_number"
Symbol following END ("symbol") must match LABEL of SELECT specification ("control_variable") on line line_number or be omitted
END must not immediately follow THEN
END must not immediately follow ELSE
END corresponding to SELECT on line symbol must not have a symbol following it because there is no LABEL; found "line_number"
Explanation:
Your program exceeds the nesting level limit for control structures (for example, DO...END and IF...THEN...ELSE). This could be because of a looping INTERPRET instruction, such as:
line='INTERPRET line' INTERPRET line
These lines loop until they exceed the nesting level limit and the language processor issues this message. Similarly, a recursive subroutine or internal function that does not end correctly can loop until it causes this message.
The associated subcodes are:
Insufficient control stack space; cannot continue execution
message
Explanation:
A character was found outside a literal (quoted) string that is not a blank or one of the valid alphanumeric and special characters.
The associated subcodes are:
Incorrect character in program "character" ('hex_character'X)
message
Explanation:
At the end of the program or the string for an INTERPRET instruction, a DO or SELECT instruction was found without a matching END or an IF clause that is not followed by a THEN clause. Putting the name of the control variable on each END closing a controlled loop can help locate this kind of error.
The associated subcodes are:
DO instruction on line line_number requires matching END
SELECT instruction on line line_number requires matching END
THEN on line line_number must be followed by an instruction
ELSE on line line_number must be followed by an instruction
OTHERWISE on line line_number requires matching END
Explanation:
Hexadecimal strings must not have leading or trailing blanks and blanks can only be embedded at byte boundaries. Only the digits 0-9 and the letters a-f and A-F are allowed. The following are valid hexadecimal strings:
'13'x 'A3C2 1c34'x '1de8'x
Binary strings can have blanks only at the boundaries of groups of four binary digits. Only the digits 0 and 1 are allowed. These are valid binary strings:
'1011'b '110 1101'b '101101 11010011'b
You might have mistyped one of the digits, for example, typing a letter O instead of the number 0. Or you might have used the one-character symbol X or B (the name of the variable X or B, respectively) after a literal string when the string is not intended as a hexadecimal or binary specification. In this case, use the explicit concatenation operator (||) to concatenate the string to the value of the symbol.
The associated subcodes are:
Incorrect location of blank in position position in hexadecimal string
Incorrect location of blank in position position in binary string
Only 0-9, a-f, A-F, and blank are valid in a hexadecimal string; found "character"
Only 0, 1, and blank are valid in a binary string; found "character"
Explanation:
A SIGNAL instruction has been executed or an event for which a trap was set with SIGNAL ON has occurred, and the language processor could not find the label specified. You might have mistyped the label or forgotten to include it.
The associated subcodes are:
Label "label_name" not found
Explanation:
A PROCEDURE instruction was encountered at an incorrect position. This could occur because no internal routines are active or because the PROCEDURE instruction was not the first instruction processed after the CALL instruction or function call. One cause for this error is dropping through to an internal routine, rather than calling it with a CALL instruction or a function call.
The associated subcodes are:
PROCEDURE is valid only when it is the first instruction executed after an internal CALL or function invocation
INTERPRET data must not contain PROCEDURE
Explanation:
A THEN clause must follow each REXX IF or WHEN clause. The language processor found another clause before it found a THEN clause.
The associated subcodes are:
IF instruction on line line_number requires matching THEN clause
WHEN instruction on line line_number requires matching THEN clause
Explanation:
A symbol or string was expected after the CALL or SIGNAL keywords but none was found. You might have omitted the string or symbol or inserted a special character (such as a parenthesis).
The associated subcodes are:
String or symbol expected after ADDRESS keyword
String or symbol expected after CALL keyword
String or symbol expected after NAME keyword
String or symbol expected after SIGNAL keyword
String or symbol expected after TRACE keyword
String or symbol expected after PARSE keyword
message
String or symbol expected after ::CLASS keyword
String or symbol expected after ::METHOD keyword
String or symbol expected after ::ROUTINE keyword
String or symbol expected after ::REQUIRES keyword
String or symbol expected after EXTERNAL keyword
String or symbol expected after METACLASS keyword
String or symbol expected after SUBCLASS keyword
String or symbol expected after INHERIT keyword
String or symbol expected after tilde (~)
String or symbol expected after superclass colon (:)
String or symbol expected after STREAM keyword
String or symbol expected after MIXINCLASS keyword
Explanation:
A symbol is expected after CALL ON, CALL OFF, END, ITERATE, LEAVE, NUMERIC, PARSE, SIGNAL ON, or SIGNAL OFF. Also, a list of symbols or variable references is expected after DROP, EXPOSE, and PROCEDURE EXPOSE. Either there was no symbol when one was required or the language processor found another token.
The associated subcodes are:
message
Symbol expected after DROP keyword
Symbol expected after EXPOSE keyword
Symbol expected after PARSE keyword
Symbol expected after PARSE VAR
NUMERIC must be followed by one of the keywords DIGITS, FORM, or FUZZ; found "symbol"
Symbol expected after "(" of a variable reference
Symbol expected after LEAVE keyword
Symbol expected after ITERATE keyword
Symbol expected after END keyword
Symbol expected after ON keyword
Symbol expected after OFF keyword
Symbol expected after USE ARG
Symbol expected after RAISE keyword
Symbol expected after USER keyword
Symbol expected after ::
Symbol expected after superclass colon (:)
Symbol expected after LABEL keyword
Explanation:
A clause such as SELECT or NOP is followed by a token other than a comment.
The associated subcodes are:
message
Data must not follow the NOP keyword; found "data"
Data must not follow the SELECT keyword; found "data"
Data must not follow the NAME keyword; found "data"
Data must not follow the condition name; found "data"
Data must not follow the SIGNAL label name; found "data"
Data must not follow the TRACE setting; found "data"
Data must not follow the LEAVE control variable name; found "data"
Data must not follow the ITERATE control variable name; found "data"
Data must not follow the END control variable name; found "data"
Data must not follow the NUMERIC FORM specification; found "data"
Data must not follow the GUARD OFF specification; found "data"
Explanation:
A literal string contains character codes that are not valid. This might be because some characters are not possible, or because the character set is extended and certain character combinations are not allowed.
The associated subcodes are:
Incorrect character string "character_string" ('hex_string'X)
message
Incorrect double-byte character
Explanation:
A data string (that is, the result of an expression) contains character codes that are not valid. This might be because some characters are not possible, or because the character set is extended and certain character combinations are not allowed.
The associated subcodes are:
Incorrect data string "string" ('hex_string'X)
message
Explanation:
This message is issued when:
The option on a TRACE instruction or the argument to the built-in function does not start with A, C, E, F, I, L, N, O, or R.
In interactive debugging, you entered a number that is not a whole number.
The associated subcodes are:
TRACE request letter must be one of "ACEFILNOR"; found "value"
Numeric TRACE requests are valid only from interactive debugging
Explanation:
An unexpected token was found at his position of an instruction where a particular subkeyword was expected. For example, in a NUMERIC instruction, the second token must be DIGITS, FUZZ, or FORM.
The associated subcodes are:
CALL ON must be followed by one of the keywords ERROR, FAILURE, HALT, NOTREADY, USER, or ANY; found "word"
CALL OFF must be followed by one of the keywords ERROR, FAILURE, HALT, NOTREADY, USER, or ANY; found "word"
SIGNAL ON must be followed by one of the keywords ERROR, FAILURE, HALT, LOSTDIGITS, NOTREADY, NOMETHOD, NOSTRING, NOVALUE, SYNTAX, USER, or ANY; found "word"
SIGNAL OFF must be followed by one of the keywords ERROR, FAILURE, HALT, LOSTDIGITS, NOTREADY, NOMETHOD, NOSTRING, NOVALUE, SYNTAX, USER, or ANY; found "word"
NUMERIC FORM must be followed by one of the keywords SCIENTIFIC or ENGINEERING; found "word"
PARSE must be followed by one of the keywords ARG, LINEIN, PULL, SOURCE, VALUE, VAR, or VERSION; found "word"
NUMERIC must be followed by one of the keywords DIGITS, FORM, or FUZZ; found "word"
PROCEDURE must be followed by the keyword EXPOSE or nothing; found "word"
message
Unknown keyword on ::CLASS directive; found "word"
Unknown keyword on ::METHOD directive; found "word"
Unknown keyword on ::ROUTINE directive; found "word"
Unknown keyword on ::REQUIRES directive; found "word"
USE must be followed by the keyword ARG; found "word"
RAISE must be followed by one of the keywords ERROR, FAILURE, HALT, LOSTDIGITS, NOMETHOD, NOSTRING, NOTREADY, NOVALUE, SYNTAX, or USER; found "word"
Unknown keyword on RAISE instruction; found "word"
Duplicate DESCRIPTION keyword found
Duplicate ADDITIONAL or ARRAY keyword found
Duplicate RETURN or EXIT keyword found
GUARD ON or GUARD OFF must be followed by the keyword WHEN; found "word"
GUARD must be followed by the keyword ON or OFF; found "word"
CALL ON condition must be followed by the keyword NAME; found "word"
SIGNAL ON condition must be followed by the keyword NAME; found "word"
Unknown keyword on FORWARD instruction; found "keyword"
Duplicate TO keyword found
Duplicate ARGUMENTS or ARRAY keyword found
Duplicate RETURN or CONTINUE keyword found
Duplicate CLASS keyword found
Duplicate MESSAGE keyword found
SELECT must be followed by the keyword LABEL; found "word"
Explanation:
An expression was found that did not evaluate to a whole number or is greater than the limit (the default is 999 999 999):
The positional patterns in parsing templates (including variable positional patterns)
The operand to the right of the power operator
The values of exprr and exprf in the DO instruction
The values given for DIGITS or FUZZ in the NUMERIC instruction
The number used in the option of the TRACE setting This error is also raised if the value is not permitted (for example, a negative repetition count in a DO instruction), or the division performed during an integer divide or remainder operation does not result in a whole number.
The associated subcodes are:
Value of repetition count expression in DO instruction must be zero or a positive whole number; found "value"
Value of FOR expression in DO instruction must be zero or a positive whole number; found "value"
Positional pattern of PARSE template must be a whole number; found "value"
NUMERIC DIGITS value must be a positive whole number; found "value"
NUMERIC FUZZ value must be zero or a positive whole number; found "value"
Number used in TRACE setting must be a whole number; found "value"
Operand to the right of the power operator (**) must be a whole number; found "value"
Result of % operation did not result in a whole number
Result of // operation did not result in a whole number
message
Result of a method call did not result in a whole number; found "value"
Result of a COMPARETO method call did not result in a whole number; found "value"
Result of a COMPARE method call did not result in a whole number; found "value"
Explanation:
A syntax error was found in the DO instruction. You probably used BY, TO, FOR, WHILE, or UNTIL twice, used a WHILE and an UNTIL, or used BY, TO, or FOR when there is no control variable specified.
The associated subcodes are:
WHILE and UNTIL keywords cannot be used on the same DO loop
Incorrect data following FOREVER keyword on the DO loop; found "data"
DO keyword keyword can be specified only once
Explanation:
A LEAVE or ITERATE instruction was found at an incorrect position. Either no loop was active, or the name specified on the instruction did not match the control variable of any active loop. Note that internal routine calls and the INTERPRET instruction protect DO loops by making them inactive. Therefore, for example, a LEAVE instruction in a subroutine cannot affect a DO loop in the calling routine. You probably tried to use the SIGNAL instruction to transfer control within or into a loop. Because a SIGNAL instruction ends all active loops, any ITERATE or LEAVE instruction causes this message.
The associated subcodes are:
LEAVE is valid only within a repetitive loop or labeled block instruction
ITERATE is valid only within a repetitive loop
Symbol following LEAVE ("symbol") must either match the label of a current loop or block instruction.
Symbol following ITERATE ("symbol") must either match the label of a current loop or be omitted
Symbol following ITERATE ("symbol") does not match a repetitive block instruction
Explanation:
The environment name specified on the ADDRESS instruction is longer than permitted for the system under which the interpreter is running.
The associated subcodes are:
Environment name exceeds limit characters; found "environment_name"
Explanation:
A variable name, label name, literal (quoted) string has exceeded the allowed limit of 250 characters. The limit for names includes any substitutions. A possible cause of this error is if you use a period (.) in a name, causing an unexpected substitution. Leaving off an ending quotation mark for a literal string, or putting a single quotation mark in a string, can cause this error because several clauses can be included in the string. For example, write the string 'don't' as 'don't' or "don't".
The associated subcodes are:
Name exceeds 250 characters: "name"
Literal string exceeds 250 characters: "string"
message
Hexadecimal literal string exceeds 250 characters "string"
Binary literal string exceeds 250 characters "string"
Explanation:
A variable was found whose name begins with a numeric digit or a period. You cannot assign a value to such a variable because you could then redefine numeric constants.
The associated subcodes are:
A value cannot be assigned to a number; found "number"
Variable symbol must not start with a number; found "symbol"
Variable symbol must not start with a "."; found "symbol"
message
Explanation:
The result of an expression was found not to be valid in the context in which it was used.
The associated subcodes are:
Value of NUMERIC DIGITS ("value") must exceed value of NUMERIC FUZZ ("value")
Value of NUMERIC DIGITS ("value") must not exceed value
message
Incorrect expression result following VALUE keyword of ADDRESS instruction
Incorrect expression result following VALUE keyword of SIGNAL instruction
Incorrect expression result following VALUE keyword of TRACE instruction
Incorrect expression result following SYNTAX keyword of RAISE instruction
Explanation:
An expression was found in an IF, WHEN, DO WHILE, or DO UNTIL phrase that did not result in a 0 or 1. Any value operated on by a logical operator must result in a 0 or 1. For example, the phrase If result then exit rc fails if result has a value other than 0 or 1.
The associated subcodes are:
Value of expression following IF keyword must be exactly "0" or "1"; found "value"
Value of expression following WHEN keyword must be exactly "0" or "1"; found "value"
Value of expression following WHILE keyword must be exactly "0" or "1"; found "value"
Value of expression following UNTIL keyword must be exactly "0" or "1"; found "value"
Value of expression to the left of the logical operator "operator" must be exactly "0" or "1"; found "value"
Value of logical list expression element must be exactly "0" or "1"; found "value"
message
Logical value must be exactly "0" or "1"; found "value"
Value of expression following GUARD keyword must be exactly "0" or "1"; found "value"
Authorization return value must be exactly "0" or "1"; found "value"
Property logical value must be exactly "0", "1", "true", or "false"; found "value"
Explanation:
An expression contains a grammatical error. Possible causes:
An expression is missing when one is required
You ended an expression with an operator
You specified, in an expression, two operators next to one another with nothing in between them
You did not specify a right parenthesis when one was required
You used special characters (such as operators) in an intended character expression without enclosing them in quotation marks
The associated subcodes are:
Incorrect expression detected at "token"
message
Prefix operator "operator" is not followed by an expression term
Missing conditional expression following IF keyword
Missing conditional expression following WHEN keyword
Missing initial expression for DO control variable
Missing expression following BY keyword
Missing expression following TO keyword
Missing expression following FOR keyword
Missing expression following WHILE keyword
Missing expression following UNTIL keyword
Missing expression following OVER keyword
Missing expression following INTERPRET keyword
Missing expression following OPTIONS keyword
Missing expression following VALUE keyword of an ADDRESS instruction
Missing expression following VALUE keyword of a SIGNAL instruction
Missing expression following VALUE keyword of a TRACE instruction
Missing expression following VALUE keyword of a NUMERIC FORM instruction
Missing expression following assignment instruction
Operator "operator" is not followed by an expression term
Missing expression following GUARD keyword
Missing expression following DESCRIPTION keyword of a RAISE instruction
Missing expression following ADDITIONAL keyword of a RAISE instruction
Missing "(" on expression list of the ARRAY keyword
Missing expression following TO keyword of a FORWARD instruction
Missing expression following ARGUMENTS keyword of a FORWARD instruction
Missing expression following MESSAGE keyword of a FORWARD instruction
Missing expression following CLASS keyword of a FORWARD instruction
Missing expression in logical_expression_list
Missing expression following "=" token of a USE STRICT ARG instruction
Explanation:
A matched parenthesis or bracket was found within an expression. There are more left parentheses than right parentheses or more left brackets than right brackets. To include a single parenthesis in a command, enclose it in quotation marks.
The associated subcodes are:
message
Left parenthesis "(" in position position on line line_number requires a corresponding right parenthesis ")"
Square bracket "[" in position position on line line_number requires a corresponding right square bracket "]"
Explanation:
Either a comma was found outside a function invocation, or there are too many right parentheses or right square brackets in an expression. To include a comma in a character expression, enclose it in quotation marks. For example, write the instruction:
Say Enter A, B, or C
as follows:
Say 'Enter A, B, or C'
The associated subcodes are:
Unexpected ","
Unmatched ")" in expression
message
Unexpected "]"
Explanation:
A special character that is not allowed within a parsing template (for example, "%") has been found, or the syntax of a variable pattern is incorrect (that is, no symbol was found after a left parenthesis). This message is also issued if you omit the WITH subkeyword in a PARSE VALUE instruction.
The associated subcodes are:
Incorrect PARSE template detected at "column_position"
Incorrect PARSE position detected at "column_position"
PARSE VALUE instruction requires WITH keyword
message
Missing PARSE relative position
Explanation:
The expression is too complex to be evaluated by the language processor.
Explanation:
An incorrect call to a routine was found. Possible causes:
You passed incorrect data (arguments) to the built-in or external routine.
You passed too many arguments to the built-in, external, or internal routine.
The external routine called was not compatible with the language processor.
The associated subcodes are:
External routine "routine" failed
Not enough arguments in invocation of routine; minimum expected is number
Too many arguments in invocation of routine; maximum expected is number
Missing argument in invocation of routine; argument argument_number is required
function_name argument argument_number must be a number; found "value"
function_name argument argument_number must be a whole number; found "value"
function_name argument argument_number must be zero or positive; found "value"
function_name argument argument_number must be positive; found "value"
function_name argument 2, "value", is not in the format described by argument 3, "value"
function_name argument argument_number must not be a null string
function_name argument argument_number must be a single character or null; found "value"
function_name argument argument_number must be a single character; found "value"
function_name argument argument_number must be a binary string; found "value"
function_name argument argument_number must be a hexadecimal string; found "value"
function_name argument argument_number must be a valid symbol; found "value"
function_name argument 1 must be a valid stream name; found "value"
function_name conversion to format "value" is not allowed
RANDOM difference between argument 1 ("value") and argument 2 ("value") must not exceed 100000
RANDOM argument 1 ("argument") must be less than or equal to argument 2 ("argument")
SOURCELINE argument 1 ("argument") must be less than or equal to the number of lines in the program (argument)
X2D argument 1 cannot be expressed as a whole number; found "value"
function_name argument number must be a single non-alphanumeric character or the null string; found "value"
function_name argument number, "value", is a format incompatible with the separator specified in argument number
message
Result returned by routine is longer than length: "value"
function_name argument argument_number must not exceed 999,999,999
function_name argument argument_number must be in the range 0-99; found "value"
function_name argument argument_number must be one of values; found "value"
TRACE setting letter must be one of "ACEFILNOR"; found "value"
function_name argument argument_number must be a single-dimensional array; found "value"
function_name argument argument_number must have a string value; found "value"
Unknown VALUE function variable environment selector; found "value"
function_name cannot be used with QUEUE:
Cannot read from a write-only property.
Cannot write to a read-only property or typelib element.
Explanation:
A term in an arithmetic expression is not a valid number or has an exponent outside the allowed range of -999 999 999 to +999 999 999.
You might have mistyped a variable name, or included an arithmetic operator in a character expression without putting it in quotation marks.
The associated subcodes are:
Nonnumeric value ("value") used in arithmetic operation
Nonnumeric value ("value") used with prefix operator
Value of TO expression of DO instruction must be numeric; found "value"
Value of BY expression of DO instruction must be numeric; found "value"
Value of control variable expression of DO instruction must be numeric; found "value"
Exponent exceeds number digits; found "value"
message
Value of RAISE instruction SYNTAX expression must be numeric; found "value"
Explanation:
The result of an arithmetic operation requires an exponent that is greater than the limit of nine digits (more than 999 999 999 or less than -999 999 999).
This error can occur during the evaluation of an expression (often as a result of trying to divide a number by 0) or while stepping a DO loop control variable.
The associated subcodes are:
Arithmetic overflow detected at: "value operator value"
Arithmetic underflow detected at: "value operator value"
Arithmetic overflow; divisor must not be zero
message
Arithmetic overflow; exponent ("exponent") exceeds number digits
Arithmetic underflow; exponent ("exponent") exceeds number digits
Arithmetic underflow; zero raised to a negative power
Explanation:
A function has been invoked within an expression or a subroutine has been invoked by a CALL, but it cannot be found. Possible reasons:
The specified label is not in the program
It is not the name of a built-in function
The language processor could not locate it externally
If you did not try to call a routine, you might have put a symbol or string adjacent to a "(" when you meant it to be separated by a blank or another operator. The language processor then treats it as a function call. For example, write the string 3(4+5) as 3*(4+5).
The associated subcodes are:
Could not find routine "routine"
message
Could not find routine "routine" for ::REQUIRES
Explanation:
The language processor called an external routine within an expression. The routine seemed to end without error, but it did not return data for use in the expression.
You might have specified the name of a program that is not intended for use as a REXX function. Call it as a command or subroutine instead.
The associated subcodes are:
No data returned from function "function"
message
Explanation:
A REXX program has been called as a function, but returned without passing back any data.
The associated subcodes are:
Data expected on RETURN instruction because routine "routine" was called as a function
Explanation:
Within an ARG, DROP, EXPOSE, PARSE, PULL, or PROCEDURE instruction, the syntax of a variable reference (a variable whose value is to be used, indicated by its name being enclosed in parentheses) is incorrect. The right parenthesis that must immediately follow the variable name might be missing or the variable name might be misspelled.
The associated subcodes are:
Extra token ("token") found in variable reference list; ")" expected
message
Missing ")" in variable reference
Extra token ("token") found in USE ARG variable reference; "," or end of instruction expected
Explanation:
A label was used in the expression being evaluated for an INTERPRET instruction or in an expression entered during interactive debugging.
The associated subcodes are:
INTERPRET data must not contain labels; found "label"
Explanation:
The language processor stopped processing the program because a system service, such as stream input or output or the manipulation of the external data queue, has failed to work correctly.
The associated subcodes are:
Failure in system service: service
message
Explanation:
A severe error was detected in the language processor or execution process during internal self-consistency checks.
The associated subcodes are:
Interpretation error: unexpected failure initializing the interpreter
message
Explanation:
An argument passed to a method, function, or routine was not valid.
The associated subcodes are:
message
Missing argument; argument argument is required
Argument argument must be a number; found "value"
Argument argument must be a whole number; found "value"
Argument argument must be zero or a positive whole number; found "value"
Argument argument must be a positive whole number; found "value"
Argument argument must not exceed limit; found "value"
Argument argument must be in the range min-max; found "value"
Argument argument must not be a null string
Argument argument must have a string value
Argument argument is an incorrect pad or character argument; found "value"
Argument argument is an incorrect length argument; found "value"
Argument argument is an incorrect position argument; found "value"
Argument argument must have a single-dimensional array value
Argument argument must be of the class class
Argument argument could not be converted to type type
Argument argument must be one of values; found "value"
Argument argument reason
Argument argument is not in a valid format; found "value"
Explanation:
An instruction was expecting either a single Rexx variable symbol or a message term to be used for an assignment.
The associated subcodes are:
The USE instruction requires a comma-separated list of variables or assignment message terms
The PARSE was expecting a variable or a message term.
Explanation:
An external class, method, or routine (specified with the EXTERNAL option on a ::CLASS, ::METHOD, or ::ROUTINE directive, or as a second argument on a NEW message to the Method class) cannot be found.
The associated subcodes are:
message
Unable to find external class "class"
Unable to find external method "method"
Unable to find external routine "routine"
Explanation:
A message term requires a result object, but the method did not return one.
The associated subcodes are:
message
Message "message" did not return a result
The associated subcodes are:
message
An unknown OLE error occurred (HRESULT=hresult).
Cannot convert OLE VARIANT to REXX object: The conversion of the VARIANT type varianttype into a REXX object failed.
Cannot convert REXX object to OLE VARIANT: The conversion of rexx_object into a VARIANT failed.
The number of elements provided to the method or property is different from the number of parameters accepted by it.
One of the parameters is not a valid VARIANT type.
OLE exception: exc_name
The requested method does not exist, or you tried to set the value of a read-only property.
One of the parameters could not be coerced to the desired type.
One or more of the parameters could not be coerced to the desired type. The first parameter with incorrect type is argument index.
A required parameter was omitted.
Could not create OLE instance.
The object invoked has disconnected from its clients.
Explanation:
The specified method, built-in function, or external routine exists, but you used it incorrectly.
The associated subcodes are:
message
Not enough arguments in method; number expected
Too many arguments in invocation of method; number expected
Missing argument in method; argument argument is required
Method argument argument must be a number; found "value"
Method argument argument must be a whole number; found "value"
Method argument argument must be zero or a positive whole number; found "value"
Method argument argument must be a positive whole number; found "value"
Method argument argument must not exceed limit; found "value"
Method argument argument must be in the range 0-99; found "value"
Method argument argument must not be null
Method argument argument must be a hexadecimal string; found "value"
Method argument argument must be a valid symbol; found "value"
Method argument argument must be one of arguments; found "value"
Method option must be one of "arguments"; found "value"
Method argument argument must have a string value
Method method does not exist
Incorrect list index "index"
Incorrect array position "position"
Argument missing on binary operator
Incorrect pad or character argument specified; found "value"
Incorrect length argument specified; found "value"
Incorrect position argument specified; found "value"
Not enough subscripts for array; number expected
Too many subscripts for array; number expected
Length must be specified to convert a negative value
D2X value must be a valid whole number; found "value"
D2C value must be a valid whole number; found "value"
Incorrect location of blank in position position in hexadecimal string
Incorrect location of blank in position position in binary string
Only 0-9, a-f, A-F, and blank are valid in a hexadecimal string; character found "character"
Only 0, 1, and blank are valid in a binary string; character found "character"
X2D result is not a valid whole number with NUMERIC DIGITS digits
C2D result is not a valid whole number with NUMERIC DIGITS digits
No more supplier items available
Method argument argument must have a string value
Method argument argument must have a single-dimensional array value
Exponent "exponent" is too large for number spaces
Integer part "integer" is too large for number spaces
method method target must be a number; found "value"
Method argument argument must be a message object
Missing argument in message array; argument argument is required
A message array must be a single-dimensional array with 2 elements
Method SECTION can be used only on single-dimensional arrays
Method argument argument must be of the class class
The index and value objects must be the same for PUT to an index-only collection
Incorrect alarm time; found "time"
Method argument argument is an array and does not contain all string values
Method argument argument could not be converted to type type
Method "method" can be used only on a single-dimensional array
Element element of the array must be a string
Element element of the array must be a subclass of the target object
Positioning of transient streams is not valid
An array cannot contain more than 99,999,999 elements
Method argument argument must have a string value or an array value
Invalid Base 64 encoded string.
Call to unsupported or unimplemented method
Application error: message
Method name is ABSTRACT and cannot be directly invoked
Incorrect queue index "index"
Explanation:
The object does not have a method with the given name. A frequent cause of this error is an uninitialized variable.
The associated subcodes are:
Object "object" does not understand message "message"
message
Explanation:
The language processor detected a specific error during execution. The associated error gives the reason for the error.
The associated subcodes are:
message
SOM object "object" is no longer available
Unable to convert object "object" to a double-float value
Unable to load library "name"
Abnormal termination occurred
Deadlock detected on a guarded method
Incorrect object reference detected
Object of type "type" was required
Metaclass "metaclass" not found
Class "class" not found
Cyclic inheritance in program "program"
SOM class "class" not found
Unable to convert object "object" to a single-dimensional array value
Unable to convert object "object" to a string value
A message object cannot be sent more than one SEND or START message
Message object "object" received an error from message "message"
Incorrect condition object received for RAISE OBJECT; found "value"
No active condition available for PROPAGATE
Unable to convert object "object" to a method
Could not retrieve "value" information for method "method"
No method descriptor information for method "method" on class "class"
The SOM interface does not currently support parameter type "type", specified for argument argument
The SOM interface does not currently support parameter type "type", specified for return value
The number of OUT or INOUT type arguments cannot exceed number
REPLY can be issued only once per method invocation
RETURN cannot return a value after a REPLY
EXIT cannot return a value after a REPLY
Message search overrides can be used only from methods of the target object
Additional information for SYNTAX errors must be a single-dimensional array of values
Unknown error number specified on RAISE SYNTAX; found "number"
Class "class" must be a MIXINCLASS for INHERIT
Class "class" is not a subclass of "class" base class "class"
Class "class" cannot inherit from itself, a superclass, or a subclass ("class")
Class "class" has not inherited class "class"
FORWARD arguments must be a single-dimensional array of values
FORWARD can only be issued in an object method invocation
Authorization failure: value
The DSOM Server for class class, could not be resolved.
Concurrency not supported
servername class server not installed
Too many parameters for event "event"
Error creating OSA event "event"
Error creating direct parameter for OSA event "event"
Error accessing event information in AETE
Error launching application "application"
Invalid additional parameter "parameter" for OSA event "event"
Error creating additional parameter for OSA event "event"
Error sending OSA event "event"
Error handling result for OSA event "event"
Error converting OSA event result to a REXX object
Invalid direct parameter "parameter" for OSA event "event"
Invalid key form for object specifier
Invalid parameter type for key form "keyform"
Missing array element at position position
Stem object default value cannot be another stem object
Explanation:
An error was detected in the language syntax. The associated error subcode identifies the syntax error.
The associated subcodes are:
message
Duplicate ::CLASS directive instruction
Duplicate ::METHOD directive instruction
Duplicate ::ROUTINE directive instruction
Duplicate ::REQUIRES directive instruction
CLASS keyword on ::METHOD directive requires a matching ::CLASS directive
EXPOSE must be the first instruction executed after a method invocation
INTERPRET data must not contain EXPOSE
GUARD must be the first instruction executed after EXPOSE or USE
GUARD can only be issued in an object method invocation
INTERPRET data must not contain GUARD
GUARD instruction did not include references to exposed variables
INTERPRET data must not contain directive instructions
INTERPRET data must not contain USE
Unrecognized directive instruction
Incorrect external directive name "method"
USE ARG requires a "," between variable names; found "token"
REPLY can only be issued in an object method invocation
Incorrect program line in method source array
::REQUIRES directives must appear before other directive instructions
INTERPRET data must not contain FORWARD
INTERPRET data must not contain REPLY
An ATTRIBUTE method name must be a valid variable name; found "name"
Incorrect class external; too many parameters
"classname" is not a valid metaclass
Incorrect class external; class name missing or invalid
Incorrect class external; invalid class server "servername"
The "..." argument marker can only appear at the end of the argument list
Duplicate ::ATTRIBUTE directive instruction