dedlfix: try, catch, exception, error klasse

Beitrag lesen

echo $begrüßung;

Fehler werden nicht mehr angezeigt sondern in einem Error-Log gespeichert.
Also heißt das ja zum Beispiel erst einmal, das ich jeden Funktionsaufruf bzw Query mit einem @ davor aufrufe, danach weiß ich halt noch nicht wie ich vorgehe.
Entweder ich setze um jeden "schei**", ein try/catch block und üübergebe die exceptions an die Fehler-Behandlungsklasse, oder ich frage den Erfolg per IF ab.

Das allein reicht nicht. Auftretende Fehler versauen einem den schönsten Programmablauf. Man muss die potentiellen Fehler gleich von vorn herein in seine Programmplanung aufnehmen, denn wenn erstmal einer aufgetreten ist, heißt es zu entscheiden, was am besten zu tun ist. Wie schwerwiegend ist der Fehler? Kann man korrigierenden Code verfassen und im Programm weitermachen? Muss man einen alternativen Weg gehen, um trotz Fehler die Verarbeitung doch noch zu einem geordneten Abschluss zu bringen? Vor allem sollte man beim Überlegen den Anwender nicht vergessen. Der sitzt vor einen System, das auf einmal nicht weitermachen will. Wie ist dem Anwender in dem Fall so geholfen, dass er trotzdem da bleibt und nicht beispielsweise sein Geld zur Konkurrenz trägt?

Wie geht ihr da vor, macht mal Vorstellungen, gebt man Ideen und Lösungsansätze. Sehr sehr gerne auch Code. Swohl richtigen als auch "Pseudo".

Die Anforderungen einerseits und Fehlermöglichkeiten andererseits sind so vielfältig, dass es schwer ist, das in generell gültigen Code zu bringen.

Ein bei jedem Fehler anspringender Log-Mechanismus ist auch nicht in jedem Fall angebracht. Oft lässt man es absichtlich auf Fehler ankommen, statt vorher alles abzuprüfen. Denn zwischen Prüfung und Ausführung der eigentlich gewollten Handlung können in Mehrbenutzersystemen Änderungen auftreten, die den gezogenen Schluss aus der Prüfung hinfällig machen, weil das Prüfungsergebnis durch die geänderten Voraussetzungen nicht mehr stimmt. Also führt man einfach die gewünschte Handlung aus und hofft dass alles gut geht. Wenn nicht, informiert man den Anwender, dass ihm irgendwer zuvorgekommen ist. Der Administrator muss von dem ganzen Vorgang nichts mitbekommen, denn in der Situation kann er auch nicht weiterhelfen.

Der Code zur Fehlererkennung und der daraufhin auszuführende Code können mitunter größer werden als der Code der eigentlichen Aufgabe. Das Loggen für den Administrator fällt dabei kaum ins Gewicht, dafür kann man sich eine Funktion schreiben, dir nur noch mit den aktuelle Daten (Wo ist es passiert? Was ist passiert? Welche Umstände (Variableninhalte) führten dazu?) aufgerufen werden muss. Wichtig ist, sich in jedem konkreten Einzelfall Gedanken zu machen, denn ein Rundumsorglospaket bestehend lediglich aus

include 'fehlerbehandlung.php';

gibt es nicht.

echo "$verabschiedung $name";