Name

Assert Procedure

Syntax

procedure Assert(Test: Boolean);
procedure Assert(Test: Boolean; const Message: string);

Description

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.”

Tips and Tricks

  • 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. ...

Get Delphi in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.