Also, ich habe mal etwas rumgespielt und getestet. Betrachten wir mal folgenden Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
Assert(FileExists('c:\test.txt'), 'Datei gibbet nitt');
end;
Mit der Annahme dass es diese Datei nicht gibt. Dann bricht
Assert den Programmablauf ab und gibt eine Fehlermeldung aus. Das könnte man jetzt auch mit if's und try-excepts lösen. Aber der Unterschied ist der:
Zitat:
---------------------------
Project1
---------------------------
Datei gibbet nitt (D:\Programmierung\Delphi\Programme\Unit1.pas, Zeile 29)
---------------------------
OK
---------------------------
Diese Meldung erscheint, wenn man die Exe aus dem Explorer startet. Das bemerkenswerte ist, dass auch die
Unit und die Zeile in der der Fehler auftrat bzw. die Annahme nicht korrekt war ausgegeben wird. Für den Endbenutzer eine nicht sehr Hilfreiche Fehlermeldung, dafür aber für den Entwickler um so hilfreicher.
Fazit: In Testversionen kann ein
Assert für den Entwickler hilfreicher sein, als eine normale Fehlermeldung genriert durch eine
Exception oder eine Messagebox in einem else-Zweig einer if-Bedingung.