Die Prozedur prüft, ob ein Boolescher Ausdruck wahr ist.
Unit
System
Kategorie
Sonstige Routinen
Delphi-Syntax:
procedure Assert(expr : Boolean [; const msg: string]);
Beschreibung
In Delphi können Sie mit Assert testen, ob Bedinungen verletzt werden, die als zutreffend angenommen werden. Assert bietet eine Möglichkeit, eine unerwartete Bedingung zu simulieren und ein Programm anzuhalten, anstatt die Ausführung in unbekannter Konstellation fortzusetzen.
Assert übernimmt als Parameter einen Booleschen Ausdruck und einen optionalen Meldungstext. Schlägt der Boolesche Test fehl, löst Assert eine EAssertionFailed-
Exception aus. Wenn ein Meldungstext übergeben wurde, wird das
Exception-Objekt mit diesem String erzeugt. Andernfalls wird ein Standardtext angezeigt. Zusätzlich wird der Dateipfad, der Dateiname und die Zeilennummer angegeben, in der Assert fehlgeschlagen ist.
Die
Unit SysUtil wandelt Laufzeitfehler in Exceptions um. Wenn SysUtil allerdings nicht in die Anwendung eingebunden ist, wird der Laufzeitfehler 227 ausgegeben und keine EAssertionFailed-
Exception ausgelöst. Dieser Laufzeitfehler hält das Programm an.
Hinweis: Die
Unit SysUtils wird in den meisten
CLX-Anwendungen auch dann verwendet, wenn sie nicht explizit der uses-Klausel hinzugefügt wurde. Beispielsweise wird durch die Verwendung der
Unit Forms auch die
Unit SysUtils einbezogen, weil die
Unit Forms SysUtils verwendet
In der Regel werden Assertions nicht in Programmversionen verwendet, die zur Auslieferung vorgesehen sind. Deshalb wurden Compiler-Direktiven implementiert, mit denen die Generierung des zugehörigen Codes deaktiviert werden kann:
$ASSERTIONS ON/OFF (Lange Form)
$C +/- (Kurze Form)
Es handelt sich dabei um globale Optionen, die sich unabhängig von ihrer Position auf die ganze Quelltextdatei auswirken. Der kleinste Gültigkeitsbereich für Assertions ist eine Quelltextdatei. Assertions sind standardmäßig deaktiviert.