/* */

27 de octubre de 2007

Runtime Errors

.
La información que se expone a continuación ha sido levantada desde esta página oficial de Free Pascal.


Las aplicaciones generadas por Free Pascal pueden generar errores en tiempo de ejecución (o runtime errors) cuando se detectan determinadas condiciones de anormalidad.

A continuación veremos la lista estos posibles errores y su correspondiente información sobre las causas que los pueden producir.


1 - Invalid function number
An invalid operating system call was attempted.

2 - File not found
Reported when trying to erase, rename or open a non-existent file.

3 - Path not found
Reported by the directory handling routines when a path does not exist or is invalid. Also reported when trying to access a non-existent file.

4 - Too many open files
The maximum number of currently opened files by your process has been reached. Certain operating systems limit the number of files which can be opened concurrently, and this error can occur when this limit has been reached.

5 - File access denied
Permission accessing the file is denied. This error might be caused by several reasons:

· Trying to open for writing a file which is read only, or which is actually a directory.
· File is currently locked or used by another process.
· Trying to create a new file, or directory while a file or directory of the same name already exists.
· Trying to read from a file which was opened in write only mode.
· Trying to write from a file which was opened in read only mode.
· Trying to remove a directory or file while it is not possible.
· No permission to access the file or directory.

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
Reported when a reset or rewrite is called with an invalid FileMode value.

15 - Invalid drive number
The number given to the Getdir or ChDir function speci�es a non-existent disk.

16 - Cannot remove current directory
Reported when trying to remove the currently active directory.

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
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 unassigned file 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 is not open.

104 - File not open for input
Reported by Read, BlockRead, Eof, Eoln, SeekEof or SeekEoln if the file is not 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-numeric value is read from a text file, when a numeric value was expected.

150 - Disk is write-protected
(Critical error)

151 - Bad drive request struct length
(Critical error)

152 - Drive not ready
(Critical error)

154 - CRC error in data
(Critical error)

156 - Disk seek error
(Critical error)

157 - Unknown media type
(Critical error)

158 - Sector Not Found
(Critical error)

159 - Printer out of paper
(Critical error)

160 - Device write fault
(Critical error)

161 - Device read fault
(Critical error)

162 - Hardware failure
(Critical error)

200 - Division by zero
The application attempted to divide 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. Trying to assign a value to a variable outside its range (for instance an enumerated type).

202 - Stack overflow error
The stack has grown beyond its maximum size (in which case the size of local variables should be reduced to avoid this error), or the stack has become corrupt. This error is only reported when stack checking is enabled.

203 - Heap overflow error
The heap has grown beyond its boundaries. This is caused when trying to allocate memory exlicitly with New, GetMem or ReallocMem, or when a class or object instance is created and no memory is left. Please note that, by default, 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 virtual method without having called istr constructor.

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).

215 - Arithmetic overflow error
This error is reported when the result of an arithmetic operation is outside of its supported range. Contrary to Turbo Pascal, this error is only reported for 32-bit or 64-bit arithmetic overflows. This is due to the fact that everything is converted to 32-bit or 64-bit before doing the actual arithmetic operation.

216 - General Protection fault
The application tried to access invalid memory space. This can be caused by several problems:

1. Deferencing a nil pointer
2. Trying to access memory which is out of bounds (for example, calling move with an invalid length).

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.

219 - Invalid typecast
Thrown when an invalid typecast is attempted on a class using the as operator. This error is also thrown when an object or class is typecast to an invalid class or object and a virtual method of that class or object is called. This last error is only detected if the -CR compiler option is used.

227 - Assertion failed error
An assertion failed, and no AssertErrorProc procedural variable was installed.






.