Thema: Delphi Assertion

Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Assertion

  Alt 17. Jun 2004, 09:54
Moin!

Damit kannst du Bedingungen in deinem Programm testen. Dies ist sinnvoll während der Entwicklung, um möglichen Fehlern auf die Schliche zu kommen.

z.B. in diesem Code sollte der Sender lieber ein TEdit sein:
Delphi-Quellcode:
Procedure TForm1.Edit1Change(Sender : Tobject);
Begin
  TEdit(Sender).Enabled := True;
End;
Grundsätzlich sollte es keine Probleme machen, aber angenommen du hast dich einmal verklickt im OI und ein Button hat nun auch die Methode zugewiesen bekommen. Durch den harten TypeCast TEdit() wird keine Überprüfung vorher durchgeführt ob es wirklich ein TEdit ist (im Gegensatz zu As TEdit). Daher kann der Code leicht ins Nirvana gehen bzw. am Button Einstellungen überschreiben.

Bsp: Assertions:
Delphi-Quellcode:
Procedure TForm1.Edit1Change(Sender : Tobject);
Begin
  Assert( Sender Is TEdit, 'Argh: Edit1Change(): Sender ist kein TEdit - wahrscheinlich falsch zugewiesen!');

  TEdit(Sender).Enabled := True;
End;
Wenn du nun dein Programm startest und den Button mit der falschen Methode aufrufst, dann kommt eine Assert mit dem selbst definierten Text hoch - schlimmeres verhindert, du weisst wo du ansetzen musst und hast es ohne grossen Endtest und debugging schnell gefunden...

MfG
Muetze1
  Mit Zitat antworten Zitat