Mailinglisten-Archive |
Sebastian Nohn wrote: > > assert() soll dazu dienen, bestimmte Bedingungen zu > > überprüfen, die *immer* wahr sein sollten und deren > > nicht-Erfüllung auf einen Programmierfehler hindeutet > > also so? > > assert(girl.age()>18 && girl.age()<30); > [...] eher so: assert("function_exists('imap_open')"); assert( 1/2 == 0.5); // test for the float locale but $fp = fopen("filename","r"); process_file($fp); assert("feof($fp)"); // process_file() sollte alles gelesen haben Wörtlich übersetzt heißt "Assertion" soviel wie "Behauptung", im C-Umfeld wird es aber eher als "Annahme" oder "Voraussetzung" verstanden d.h. eine mit assert() überprüfte "Annahme" ist eine wesentliche "Voraussetzung" für das Funktionieren eines Programms, nicht eine einfache Einschränkung des Wertebereichs, und somit wird in der debug-Phase mit assert() geprüft, ob alle Annahmen auch tatsächlich erfüllt werden, ansonsten wird die nicht erfüllte Bedingung ausgegeben und normalerweise das Programm abgebrochen vor der Auslieferung schaltetet man dann alle assert()s stumm und hofft, das bei einem eventuell auftretenden Fehler, der lokal nicht aufgefallen ist, alles irgendwie doch noch weiterfunktioniert, oder man liefert auch dem Kunden Versionen mit aktiviertem assert(), um zum Beispiel nur dort auftretende Fehler einzugrenzen grundsätzlich sollte aber gelten: das eigentliche Programm sollte auch ohne die assert() Aufrufe funktionieren und z.B. alle Eingabefehler abfangen -- Hartmut Holzgraefe hartmut_(at)_six.de http://www.six.de +49-711-99091-77 fax:-99
php::bar PHP Wiki - Listenarchive