Wie behandelt ihr aufkommende Fehler?

Begonnen von k00ni, 29. April 2007, 16:10:47

Vorheriges Thema - Nächstes Thema

k00ni

Nabend,
wie sieht es aus, wenn man einfach jede Funktion einen Text, eine Art Bericht zurückliefern lässt. Man könnte ihn dann checken und dann wenn er ungleich true ist, einfach ausgeben.
 

 
Bei kleinen Projekten und wenig Fehlerfällen bestimmt interessant. Denn es ist sehr simpel und der Programmierer brauch sich keine Sorgen um den Fehler machen, denn die Funktion gibt auf den Fehler zugeschnittene Meldungen zurück. Natürlich nur, wenn diese vorher auch so implementiert wurden. /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />
Gedanken dazu?

Warum nimmst Du da nicht gleich trigger_errror()? Dort kannst Du einerseits einen Fehlertext angeben, andererseits auch die Art des Fehlers definieren (Notice, Warning oder Fatal).
Du übersiehst außerdem, dass Du, wenn Du Fehlermeldungen einfach mit echo ausgibst, die entsprechenden Settings in PHP übergehst. So würden Fehlermeldungen selbst dann ausgegeben, wenn man display_errors auf Off gestellt hat. Außerdem werden Fehler nicht geloggt. Und ja, es gibt sehr gute Gründe dafür, display_errors zu deaktivieren. die() ist übrigens auch noch so eine Funktion, auf die man tunlichst verzichten sollte.
 
Nochmal zusammengefasst:
In größeren Projekten - also pi mal Daumen ab 100 Zeilen Code - sollte man sowieso PHP5 und damit auch Exceptions verwenden. Ansonsten unbedingt über trigger_error() das PHP-Fehlermanagement antriggern. Es kann nicht schaden, die Doku zu den eigenen Fehlerhandlern zu lesen.

k00ni

Hallo,
was du sagst, leuchtet mir ein. Ich habe ehrlich gesagt bis gerade eben noch nichts von trigger_error gehört. Werde mir das aber später noch einmal anschauen.
die() ist übrigens auch noch so eine Funktion, auf die man tunlichst verzichten sollte.[/quote]
Was meinst du damit?

Insofern, als dass damit eben das Skript sofort abgebrochen wird (ja, register_shutdown_function ist mir bekannt). Dies ist aber gar nicht immer die adäquate Reaktion auf einen Fehler. Auch für die/exit gilt, dass der übergebene String einfach ohne weiteres ausgegeben wird - also auch wieder kein PHP-Fehlermanagement.
Prinzipiell sollte Fehlermanagement so intelligent sein und bei kritischen Fehlern die Verarbeitung in einem definierten Zustand beenden: Beispielsweise nachdem Datenbankverbindungen getrennt und nicht mehr benötigte Daten freigegeben wurden.

all your base are belong to us / Discord