The meaning of Runtime Error 217
The online help that comes with Delphi lists "control-C-exit" as the reason for a runtime error 217, here a listing of Delphi 3 Runtime Errors:
STATUS_FLOAT_DIVIDE_BY_ZERO: 200;
STATUS_INTEGER_DIVIDE_BY_ZERO: 200;
STATUS_ARRAY_BOUNDS_EXCEEDED: 201;
STATUS_STACK_OVERFLOW: 202;
STATUS_FLOAT_OVERFLOW: 205;
STATUS_FLOAT_UNDERFLOW,
STATUS_FLOAT_DENORMAL_OPERAND: 206;
STATUS_FLOAT_INEXACT_RESULT,
STATUS_FLOAT_INVALID_OPERATION,
STATUS_FLOAT_STACK_CHECK: 207;
STATUS_INTEGER_OVERFLOW: 215;
STATUS_ACCESS_VIOLATION: 216;
STATUS_CONTROL_C_EXIT: 217;
STATUS_PRIVILEGED_INSTRUCTION: 218;
In the case of 217, this listing is wrong.
In fact, Delphi executables will die with runtime error 217 when an
exception was raised before SysUtils is initialized or after it is finalized. In both situations the regular
exception handling is not put in place.
If the error occurs right at your application's startup, check your initialization sections. Try to move code into a later part, e.g. into FormCreate() events.
Otherwise check your units' finalization sections.
Some typical situations where this can happen:
- unexpected date formats
- disk or registry accesses where the user has not sufficient privileges
-
BDE Net Dir mismatches