Forum: Algorithmen, Datenstrukturen und Klassendesign
by sx2008,
5. Aug 2012
Das sehe ich etwas anderst.
Asserts werden einmal hingeschrieben und halten Wache solange der Code benützt wird.
Breakpoints und Watches im Debugger sind dagegen eine mehr oder weniger einmalige Geschichte.
Asserts sind ein extrem nützliches Werkzeug; vorallem dann wenn die Codebasis sehr gross ist.
Wenn der Benutzer eine Zugriffsverletzung meldet, dann weiss der Entwickler nur dass...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by sx2008,
4. Aug 2012
Also ich würde den Code so umschreiben:
procedure TForm1.Button1Click(Sender:TObject);
begin
// self ist in diesem Kontext das Formular
// sollte self = NIL sein, dann ist alles zu spät
// deshalb wird dies mit der Assert-Anweisung geprüft
Assert(Assigned(self));
// wir sind etwas paranoid und gehen lieber auf Nummer Sicher
Assert(Assigned(ComboDis));