Free Pascal运行时错误
Run time errors
Applications generated by Free Pascal might generate Run time error when certain abnormal conditions are detected in the application. This appendix lists the possible run time errors and gives information on why they might be produced.
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 specifies 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 数据CRC校验错
(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:
An array was accessed with an index outside its declared range.
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:
Deferencing a nil pointer
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 无效的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.