DelphiFAQ Home Search:
General :: Programming :: Delphi
General Delphi related information.

Articles:

This list is sorted by recent document popularity (not total page views).
New documents will first appear at the bottom.
Recommended links on this topic:
Featured Article

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



Generated 0:01:47 on Jul 22, 2017