D. Run time errors

The Free Pascal Run-time library generates the following errors at run-time [*]:

1 Invalid function number
You tried to call a DOS function which doesn't exist.
2 File not found
You can get this error when you tried to do an operation on a file which doesn't exist.
3 Path not found
You can get this error when you tried to do an operation on a file which doesn't exist, or when you try to change to, or remove a directory that doesn't exist, or try to make a subdirectory of a subdirectory that doesn't exist.
4 Too many open files
When attempting to open a file for reading or writing, you can get this error when your program has too many open files.
5 File access denied
You don't have access to the specified file.
6 Invalid file handle
If this happens, the file variable you are using is trashed; it indicates that your memory is corrupted.
12 Invalid file access code
This will happen if you do a reset or rewrite of a file when FileMode is invalid.
15 Invalid drive number
The number given to the Getdir function specifies a non-existent disk.
16 Cannot remove current directory
You get this if you try to remove the current diirectory.
17 Cannot rename across drives
You cannot rename a file such that it would end up on another disk or partition.
100 Disk read error
DOS only. An error occurred when reading from disk. Typically when you try to read past the end of a file.
101 Disk write error
Reported when the disk is full, and you're trying to write to it.
102 File not assigned
This is reported by Reset, Rewrite, Append, Rename and Erase, if you call them with an unassigne function as a parameter.
103 File not open
Reported by the following functions : Close , Read, Write, Seek, EOf, FilePos, FileSize, Flush, BlockRead, and BlockWrite if the file isn't open.
104 File not open for input
Reported by Read, BlockRead, Eof, Eoln, SeekEof or SeekEoln if the file isn't opened with Reset.
105 File not open for output
Reported by write if a text file isn't opened with Rewrite.
106 Invalid numeric format
Reported when a non-numerice value is read from a text file, when a numeric value was expected.
150 Disk is write-protected
(Critical error, DOS only.)
151 Bad drive request struct length
(Critical error, DOS only.)
152 Drive not ready
(Critical error, DOS only.)
154 CRC error in data
(Critical error, DOS only.)
156 Disk seek error
(Critical error, DOS only.)
157 Unknown media type
(Critical error, DOS only.)
158 Sector Not Found
(Critical error, DOS only.)
159 Printer out of paper
(Critical error, DOS only.)
160 Device write fault
(Critical error, DOS only.)
161 Device read fault
(Critical error, DOS only.)
162 Hardware failure
(Critical error, DOS only.)
200 Division by zero
You are dividing a number by zero.
201 Range check error
If you compiled your program with range checking on, then you can get this error in the following cases:
  1. An array was accessed with an index outside its declared range.
  2. You're trying to assign a value to a variable outside its range (for instance a enumerated type).
202 Stack overflow error
The stack has grown beyond itss maximum size. This error can easily occur if you have recursive functions.
203 Heap overflow error
The heap has grown beyond its boundaries, ad you are rying to get more memory. Please note that Free Pascal provides a growing heap, i.e. the heap will try to allocate more memory if needed. However, if the heap has reached the maximum size allowed by the operating system or hardware, then you will get this error.
204 Invalid pointer operation
This you will get if you call dispose or Freemem with an invalid pointer (notably, Nil)
205 Floating point overflow
You are trying to use or produce too large real numbers.
206 Floating point underflow
You are trying to use or produce too small real numbers.
207 Invalid floating point operation
Can occur if you try to calculate the square root or logarithm of a negative number.
210 Object not initialized
When compiled with range checking on, a program will report this error if you call a virtal method without having initialized the VMT.
211 Call to abstract method
Your program tried to execute an abstract virtual method. Abstract methods should be overridden, and the overriding method should be called.
212 Stream registration error
This occurs when an invalid type is registered in the objects unit.
213 Collection index out of range
You are trying to access a collection item with an invalid index. (objects unit)
214 Collection overflow error
The collection has reached its maximal size, and you are trying to add another element. (objects unit)
216 General Protection fault
You are trying to access memory outside your appointed memory.
217 Unhandled exception occurred
An exception occurred, and there was no exception handler present. The sysutils unit installs a default exception handler which catches all excpetions and exits gracefully.
227 Assertion failed error
An assertion failed, and no AssertErrorProc procedural variable was installed.

Free Pascal Compiler