eX version 0.4b User's Manual                         File eXMan26.txt
(C) Copyright 1995, 1996 William E. Wilgus III.   All rights reserved.



Errors and Error Messages

Error trapping in this version of eX is provided by both the eX
implementation and the implementation language.  Each method is
discussed seperately.  
 

eX Error Trapping
 
Except for the eX commands, errors trapped by this eX implementation
display an error message followed by the macro number, name, and the
current execution line and column.  If an error occurs while in the
inter-active execution mode, macro execution is terminated and the
command prompt is displayed for further command.  If an error occurs
while a debug command is in effect, macro execution is terminated and
the debug command prompt is displayed for further command.  Otherwise,
eX aborts to the operating system.  An eX command error causes an
error message to be displayed with an abort to the operating system.  
 

Accumulator exceeds bounds
     An attempt was made to access an accumulator plane or level 
     that does not exist.  Allocate more or use fewer to remedy the 
     error.  

Argument error
     An argument of the incorrect data class/type or with an illegal 
     value was received. 

Bad variable type
     An illegal variable type was given to TypeVars. 

EXP argument < 88.02969
     The argument value limit for the function exp was exceeded. 

Macro space un-available
     Too few macros were allocated.  

Non-existent variable
     A variable type number reference that is greater than the current
     number of variables in the type was made.

Un-able to perform/bad eX command
     eX was un-able to complete the command or the command was
     in-valid.  

Un-known word
     An eX word that does not exist was encountered.  Perhaps a
     variable type prefix is missing. 

 
 
Implementation Language Error Trapping
 
Errors trapped by the implementation language cause an error message  
to be displayed followed by a message to press any key to return to
the (operating) system. 
 

Bad file mode
     An access method attempted was in-compatible with the file mode. 

Bad file name
     Illegal file specification. 

Bad file name or number
     An attempt to access an un-defined file or a access an illegal
     file number has occured.

Bad record length
     A file access with a record length that differs from that which
     was defined was attempted.  

Bad record number
     An attempt was made to read or write a record whose number was
     less than 1 (one).  

CASE ELSE expected
     You shouldn't get this error.  If you do, your program has an 
     error that was not provided for in the eX interpreter, and I'd
     like to know about it. 

Device fault
     A device has returned a hardware error.  

Device I/O error
     An input/output error occured on a device input/output operation.

     The operating system cannot recover from the error.  

Device timeout
     eX did not receive information from an input/output device  
     within a pre-determined amount of time.  

Device un-available
     The device to which an attempted access was made is not on-line
     or does not exist.  

Disk full
     There is not enough room on the disk for a write operation (or a 
     forget, which also can cause a write operation).  I used to think
     I'd never fill up the 20 MB drive on my old system. 

Disk media error
     A physical flaw on the disk was detected.  

Disk not ready
     The disk drive door is open or no disk is in the drive.  

Division by zero
     A division by zero has been encountered in an eXpression, or an  
     exponentiation operation results in zero being raised to a
     negative power.  The error also occurs if the integer -32,768 is
     divided by 1 or -1, or if -32768 is moded by 1 or -1.  This may
     change in future versions of eX.

File already exists
     An attempt was made to rename a file to a file specification that
     already exists.  

File already open
     A sequential output mode file definition to an already defined  
     file has been attempted, or an attempt to delete a file that is
     open has been made.  

File not found
     A statement references a file does not exist at the specified
     location.  eX currently has a bug that under some circumstances 
     can cause this to happen when it should not. 

Illegal function call
     An improper or out of range argument was passed to a function. 
     It may also occur for the following reasons: 
          1. A negative or unreasonably large subscript is used.  
          2. A negative number is raised to a power that is not an
             integer.  
          3. A negative file record number is used.  
          4. A string is concatenated to create a string longer than
             32,767 characters. 

Input past end of file
     A sequential input access attempts to read from a null (empty)
     file or from a file in which all data has been input.  Use the
     eof function to avoid this error.  

Internal error
     You should never get this one.  If you do, I'd like to know about
     it. 

Out of data space
     You've run out of eX memory.  Eliminate un-necessary whitespace
     from macros and forget macros and/or variables while not neeeded,
     re-loading them as necessary.  Reduce data entity allocations if
     possible.  As a last resort, 

Out of memory
     You either have attempted to have more data memory resident than
     eX can handle, or insufficient memory for the data that is to be
     available to eX.  In the latter case, try getting rid of
     terminate and stay resident programs.  

Out of paper
     The printer is out of paper or not turned on.  

Out of stack space
     This error might occur in large and complex macros.  If it does,
     I'd like to know about it.  Try simplifying the macro.  

Out of string space
     There is insufficient string space for the requirements.  In
     addition to macros and string variables, string space is used by 
     eX for functions that are internal to it.  Eliminate un-necessary
     whitespace from macros, and forget macros and string variables
     while un-needed, reloading from disk as required. 

Overflow
     The result of a calculation is too large to be representated
     within the range if a data type.  

Path not found
     DOS was un-able to find the disk path specified for a file or
     directory operation.  The operation was not completed.  

Path/file access error
     Dos was un-able to make a correct path to filename connection
     during a file or directory operation.  The operation was not
     completed.  Currently, a bug in eX might cause this to happen
     when it should not. 

Permission denied
     An attempt was made to write to a write protected disk or access
     a locked file.  

Redo from start
     You have input the wrong type of item from the keyboard.  Enter a
     correct data class response.  

Rename accross disks
     An attempt was made to rename a file with a new drive
     designation.   This is not allowed.  

Requires DOS 2.10 or later
     You are attempting to use eX with an incompatible version of DOS.


Return without gosub
     You should not see this error.  If it does occur, it is internal
     to eX and I'd like to know about it. 

String formula too complex
     You should not see this error.  If it does occur, it is internal
     to eX and I'd like to know about it. 

String space corrupt
     You should not see this error.  If it does occur, it is internal
     to eX and I'd like to know about it. 

Subscript out of range
     You probably have attempted to access an accumulator plane that
     has not been allocated.  You should not see this error for other
     reasons.  If you do, it is internal to eX and I'd like to know
     about it. 

Syntax error
     You should not see this error.  If it does occur, it is internal
     to eX and I'd like to know about it. 

Too many files
     You should not see this error.  If it does occur, it is internal
     to eX and I'd like to know about it. 

Type mis-match
     Something is an incorrect data type.  

Unprintable error
     An error message is not available for the condition that exists. 
     You should not see this error, which is internal to eX.  If it
     does occur, let me know. 

