echo $begrüßung;
(Dass eine Datenbank mal nicht erreichbar ist, ist beispielsweise ein vorhersehbarer Fehler.)
Naja, und durchaus einer, der zum Abbruch eines Skriptes führen könnte. Ohne Daten sind die meisten Sachen nicht mehr sinnvoll. D.h. ein die() das eine HTML Fehlerseite ausgibt und an eine Mail an den Admin verschickt, wäre hier die richtige Reaktion
Deine Betrachtungsweise setzt voraus, dass man nach dem EVA-Prinzip vorgegangen ist. Man sucht sich also zunächst seine Daten zusammen und erst dann geht man zur Ausgabe über. Dann kann man im Falle eines Fehlerfalles auch per die() und register_shutdown_function() eine komplette Fehlerseite ausgeben und ist aus HTML-Sicht sauber. Doch oftmals hängt ja gerade bei PHP-Anfängern die Datenbankabfrage an der Stelle im HTML-Gerüst, an der die Ergebnisse dargestellt werden sollen. Es ist ja bei PHP so einfach, aus dem HTML auszubrechen und mal eben PHP-Code einzufügen. Für dieses Prinzip ist es ja erfunden worden. (Und man findet es beispielsweise auch bei JSP und ASP.) Wenn man erst einmal an einer solchen Stelle im HTML-Gerüst angelangt ist, ist korrektes Beenden des HTML-Dokuments mittels die() und r.s.f() ein nicht einfaches Unterfangen.
Ziel sollte immer sein, dass ein Script an seinem Ende ankommt. Dabei darf es gelegentlich Umwege nehmen, auch wenn diese die Hauptattraktion umfahren. Das ist immer noch besser als mit Motorschaden auf der Strecke liegenzubleiben.
Ja sicher, bei weniger fatalen Problemen ist das sicher möglich und sinnvoll.
Da, scheint mir, haben wir eine unterschiedliche Auffassung von fatal. Für mich ist es fatal, wenn gar nichts mehr geht. Der Tag ist für mich nicht beendet, wenn sich herausstellt, dass mein Hauptvorhaben undurchführbar ist. Ich verbringe dann die Zeit bis 24 Uhr mit einem Ersatzprogramm und erschieße mich nicht gleich :-) Das gleiche sollte man seinen Besuchern anbieten. "Es tut uns leid, ein Fehler ist aufgetreten." - Und nun? Der Besucher hatte ein Ziel. Wie erreicht er es trotzdem? Welche Alternativen kann man ihm anbieten? Ist es nicht besser, ihm als Ersatz die Bestellung per Mail oder Fax anzubieten statt mit einem "Geht grad nicht" auf das Geschäft zu verzichten?
[...] es geht ja gerade darum Folgefehler zu vermeiden ansonsten würde man ja nicht sterben wollen und eben Programmierfehler zu erkennen.
Das ist der Dreh- und Angelpunkt. Es geht um die Art der Folgefehlervermeidung. Wenn ich eine Erkältung habe, dann gehe ich zu Bett, um den Folgefehler Lungenentzündung zu vermeiden. Ich gehe aber nicht sofort sterben, auch wenn dann von irgendeiner Instanz ein ordentliches Begräbnis ausrichtet wird. Mein Ziel ist es, auf Alternativen zur Gnadenschussmentalität hinzuweisen. Else statt Exit! :-)
echo "$verabschiedung $name";