Assert() Function

Anwendungen, Tools, Userlibs und anderes nützliches.
FloHimself
Beiträge: 338
Registriert: 05.09.2004 18:47

Assert() Function

Beitrag von FloHimself »

The assert function checks whether its first argument is not false and simply returns that argument.
http://rzserv2.fhnon.de/~lg016586/downl ... Assert.zip
Zuletzt geändert von FloHimself am 21.09.2007 10:31, insgesamt 1-mal geändert.
Benutzeravatar
Dostej
Beiträge: 529
Registriert: 01.10.2004 10:02
Kontaktdaten:

Beitrag von Dostej »

Hm, also ehrlich gesagt versteh ich das nciht ganz. Kannst Du ein Codebeispiel posten? Oder ne kleine Hilfedatei zu deiner Lib machen?
FloHimself
Beiträge: 338
Registriert: 05.09.2004 18:47

Beitrag von FloHimself »

Die Assert Funktion ist etwas super simples. Sie überprüft den (ersten) übergebenen Parameter und gibt diesen als Rückgabewert wieder. Ist der Wert 0 (#False) wird eine Fehlermeldung (eine standard Meldung oder die im optionalen zweiten Parameter übergebene Mitteilung) im Debugger (und nur im Debugger!) angezeigt.

Wie gesagt, eine sehr einfache Funktion, aber in größeren Projekten war sie sehr hilfreich, zB bei der Suche nach NULL Pointern.

Beispiel:

Code: Alles auswählen

*MyPtr = Assert(GimmeAPointer(), "w00t a NULL Pointer?")
Im Debug Modus wird also der Rückgabewert der Funktion GimmeAPointer() an Assert() übergeben und geprüft ob dieser 0 ist. Ist er das, stoppt der Debugger mit Fehlermeldung. Ist der Rückgabewert von GimmeAPointer() <> 0, wird dieser über die Assert() Funktion zurückgegeben. Bei deaktivierten Debugger gibt Assert immer den übergebenen Wert zurück.
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

*doh*, das mach ich schon Jahr und Tag mit Datenbankabfragen in PHP so, aber auf die Idee das auch in PB so zu machen bin ich natürlich nicht gekommen :(

Flo: :allright:

Man sollte Fred vorschlagen das in die OnError- oder Misc-Library aufzunehmen, am Besten mit mehreren optionalen Parametern mit denen man noch näher bestimmen kann, wo der ungültige Zahlenbereich liegt (ist ja nicht immer 0).
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Sozusagen Definitionsmenge oder wie?
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

Jupp, genau.


Weitere Gedanken dazu:

- Keine Funktion, sondern ein Schlüsselwort. Dieses stellt die Funktionalität beim Debuggen zur Verfügung, wird aber in der Final ignoriert, d.h. nur die zu testende Funktion wird aufgerufen. Vorteil: mehr Geschwindigkeit, kleinere EXE.
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Antworten