The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 4,262 other subscribers

Delphi run-time errors

Posted by jpluimers on 2021/07/29

Since I always forget where to get the full list: there is none in the documentation. Only parts.

Usually the mapping is from run-time errors to exceptions:

In addition, exceptions are converted to run-time errors when the exception handling mechanism in the SysUtils unit is not up.

This can happen early in start-up, or late un shut-down of an application.

The one I encountered most is the runtime error 216 during shutdown: it is an Access Violation (EAccessViolation).

Run-time errors (not changed since Delphi 2007)

  • [WayBack] Delphi 2007: Exceptions

    When an application uses the SysUtils unit, most runtime errors are automatically converted into exceptions. Many errors that would otherwise terminate an application – such as insufficient memory, division by zero, and general protection faults – can be caught and handled.

  • [WayBack] Delphi 2007: Delphi Runtime Errors

    Runtime errors take the form:

    Runtime error nnn at xxxxxxxx

    where nnn is the runtime error number, and xxxxxxxx is the runtime error address.

    Applications that use the SysUtils class map most runtime errors to Exceptions, which allow your application to resolve the error without terminating.

    Delphi runtime errors are divided into the following categories:

    • I/O errors, numbered 100 through 149
    • Fatal errors, numbered 200 through 255
    • Operating system errors

     

  • [WayBack] Delphi 2007: I/O Errors

    I/O errors cause an exception to be thrown if a statement is compiled in the {$I+} state. (If the application does not include the SysUtils class, the exception causes the application to terminate).

    In the {$I-} state, the program continues to execute, and the error is reported by the IOResult function.

    Number
    Name
    Description
    100
    Disk read error
    Reported by Read on a typed file if you attempt to read past the end of the file.
    101
    Disk write error
    Reported by CloseFile, Write, WriteIn, or Flush if the disk becomes full.
    102
    File not assigned
    Reported by Reset, Rewrite, Append, Rename, or Erase if the file variable has not been assigned a name through a call to Assign or AssignFile.
    103
    File not open
    Reported by CloseFile, Read Write, Seek, Eof, FilePos, FileSize, Flush, BlockRead, or BlockWrite if the file is not open.
    104
    File not open for input
    Reported by Read, Readln, Eof, Eoln, SeekEof, or SeekEoln on a text file if the file is not open for input.
    105
    File not open for output
    Reported by Write or Writeln on a text file if you do not generate a Console application.
    106
    Invalid numeric format
    Reported by Read or Readln if a numeric value read from a text file does not conform to the proper numeric format.
  • [WayBack] Delphi 2007: Fatal errors
    Number
    Name
    Exception
    200
    Division by zero
    EDivByZero
    201
    Range check error
    ERangeError
    202
    Stack overflow
    EStackOverflow
    203
    Heap overflow error
    EOutOfMemory
    204
    Invalid pointer operation
    EInvalidPointer
    205
    Floating point overflow
    EOverflow
    206
    Floating point underflow
    EUnderflow
    207
    Invalid floating point operation
    EInvalidOp
    210
    Abstract Method Error
    EAbstractError
    215
    Arithmetic overflow (integer only)
    EIntOverflow
    216
    Access violation
    EAccessViolation
    217
    Control-C
    EControlC
    218
    Privileged instruction
    EPrivilege
    219
    Invalid typecast
    EInvalidCast
    220
    Invalid variant typecast
    EVariantError
    221
    Invalid variant operation
    EVariantError
    222
    No variant method call dispatcher
    EVariantError
    223
    Cannot create variant array
    EVariantError
    224
    Variant does not contain array
    EVariantError
    225
    Variant array bounds error
    EVariantError
    226
    TLS initialization error
    No exception to map to.
    227
    Assertion failed
    EAssertionFailed
    228
    Interface Cast Error
    EIntfCastError
    229
    Safecall error
    ESafecallException
    230
    Unhandled exception
    No exception to map to.
    231
    Too many nested exceptions
    Up to 16 permitted.
    232
    Fatal signal raised on a non-Delphi thread
    No exception to map to.

For completeness, some DOS Borland/Turbo Pascal errors from [WayBack] where are the runtime error codes, eh? – delphi

Borland Pascal 7 runtime errors; most applicable to Delphi:
*** DOS ***
1   Invalid function number
2   File not found
3   Path not found
4   Too many open files
5   File access denied
6   Invalid file handle
12  Invalid file access code
15  Invalid drive number
16  Cannot remove current directory
17  Cannot rename across drives
18  No more files
*** I/O ***
100 Disc read error
101 Disc write error
102 File not assigned
103 File not open
104 File not open for input
105 File not open for output
106 Invalid numeric format read from file
*** CRITICAL ***
150 Write protected
151 Unknown unit/Bad drive request struct length
152 Drive not ready
153 Unknown command
154 CRC error in data
155 Bad drive request structure length
156 Disc seek error
157 Unknown media type
158 Sector not found
159 Printer out of paper
160 Device write fault
161 Device read fault
162 Hardware failure (C-DOS: file/device opened by another process)
*** FATAL ***
200 Division by zero
201 Range check
202 Stack overflow (on entry to a procedure or function)
203 Heap overflow (from New() or GetMem())
204 Invalid pointer operation (from Dispose() or FreeMem())
205 Floating point overflow
206 Floating point underflow
207 Invalid floating point operation
208 Overlay manager not installed (usually when calling OvrInit)
209 Overlay file read error
210 Object not initialized
211 Call to abstract method
212 Stream registration error
213 Collection index out of range
214 Collection overflow error
215 Arithmetic overflow error
216 General Protection fault

The run-time error 216

–jeroen

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.