Assert Procedure
Use the
Assert
procedure to document and enforce the
assumptions you must make when writing code.
Assert
is not a real procedure. The compiler
handles Assert
specially and compiles the filename
and line number of the assertion to help you locate the problem
should the assertion fail.
If the Test
condition is False, Delphi calls the
procedure pointed to by the AssertErrorProc
variable. The SysUtils
unit sets this variable to
a procedure that raises the EAssertionFailed
exception. If AssertErrorProc
is
nil
, Delphi raises runtime error 21
(EAssertError
).
You can include an optional message that Delphi passes to the
AssertErrorProc
procedure. If you do not include
the message, Delphi uses a default message, i.e., “Assertion
failed.”
The
proper way to use Assert
is to specify conditions
that must be true in order for your code to work correctly. All
programmers make assumptions—about the internal state of an
object, the value or validity of a subroutine’s arguments, or
the value returned from a function. A good way to think about
assertions is that they check for programmer errors, not user errors.
Although you can turn off assertions with the
$Assertions
or $C
compiler
directives, you will rarely have any reason to do so. Receiving an
“assertion failed” error is disconcerting to a user, but
much less disconcerting than the user’s data being corrupted.