Fehlerbehandlung und Debugging sind wesentliche Themen jedes Software-Projekts und sollten keinesfalls zu kurz kommen. Mit Execution und Debug stellen eZ Components passende Komponenten bereit, die sich dieser Themen annehmen.
4 Fehlerbehandlung und Debugging
Fehler jeglicher Art in einer Anwendung sind für den Benutzer immer eine unangenehme Sache. Besonders störend ist die Darstellung von Fehlern auf einer Webseite, die den Benutzer entweder in eine Sackgasse führen oder gar das Seiten-Layout und die dargestellten Daten stören. In diesem Kapitel werden die Verarbeitung des in Kapitel 3, »Die Applikationsbasis«, bereits verwendeten Fehlersignals implementiert und Fehler dabei in eine benutzerfreundliche Meldung umgewandelt. Weiterhin werden fatale Fehler abgefangen und vor dem Benutzer versteckt.
Zwar ist das Verstecken von Fehlern benutzerfreundlich, bei der Wartung und Weiterentwicklung einer Applikation aber eher störend. Daher werden außerdem in diesem Kapitel Debugging-Funktionalitäten in das Galileo-Press-Blog eingefügt, die zur Entwicklungszeit Aufschluss über aufgetretene Fehler geben und das Profiling einzelner Applikationsteile erlauben.
| Debugging und Profiling |
|
Der hier gezeigte Ansatz von Debugging ist nicht wirklich optimal. Zwar werden beim Einschalten der Debug-Option Fehlermeldungen protokolliert und Events dargestellt, einen echten Debugger ersetzt diese Methodik aber nicht. Insbesondere geht im GP-Blog der Stack-Trace eines Fehlers verloren, der sonst wesentliche Informationen zur Fehlersuche beiträgt. Eine bessere Realisierung ist aber aus Platz- und Anschauungsgründen hier nicht möglich. In realen Anwendungen empfehlen wir Ihnen, neben der Debug-Komponente den PHP-Debugger Xdebug einzusetzen, welcher bereits in Abschnitt 2.5.2, »Patches bereitstellen und Dokumentation verbessern«, erwähnt wurde. Unter Profiling versteht man die Analyse der Laufzeit einzelner Applikationsteile. So ist es möglich, Flaschenhälse einer Applikation zu identifizieren und gegebenenfalls zu beseitigen. Die Debug-Komponente unterstützt Sie auch bei diesem Verfahren der Applikationsanalyse. Allerdings bietet Xdebug auch hier fortgeschrittene Funktionalitäten, sodass Sie wiederum eine Kombination beider Techniken verwenden sollten. |
4.1 Verwendete Komponenten 

Die Execution-Komponente kümmert sich um fatale Fehler in der Anwendung. Bei einigen Webapplikationen erkennt man solche Fehler an einer hässlichen PHP-Fehlermeldung im Browser, die statt der gewünschten Applikation dargestellt wird, oder auch an komplett weißen Seiten, wenn die Anzeige von Fehlern sinnvollerweise unterdrückt wird. Die Execution-Komponente geht diese Problematik auf globaler Ebene an und erlaubt Ihnen, stattdessen eine ansprechende Fehlermeldung zu präsentieren.
Mit Hilfe der Debug-Komponente ist es möglich, auch bei abgefangenen Fehlern zur Entwicklungszeit Einblick in die auftretenden Fehler zu erhalten. Außerdem stellt sie Funktionalitäten bereit, Ausführungszeiten innerhalb der Applikation zu messen und so Flaschenhälse zu identifizieren. Zu beiden Techniken erfahren Sie mehr im entsprechenden Kasten.
4.1.1 Execution 

Auch bei exzessivem Testen einer Applikation sind fatale Fehler nicht völlig auszuschließen. Um vorzubeugen, dass der Benutzer des GP-Blogs unschöne Darstellungen solcher Fehler zu Gesicht bekommt, erlaubt die Execution-Komponente, diese abzufangen und entsprechend darauf zu reagieren. So können Sie dem Benutzer eine ansprechende Fehlerseite präsentieren und gegebenenfalls einen Administrator benachrichtigen, sobald ein fataler Fehler auftritt. Dieses Kapitel beschränkt sich lediglich auf die Darstellung gegenüber dem Benutzer; die Benachrichtigungsfunktionen werden später in Kapitel 14, »Logging«, nachgerüstet.
4.1.2 Debug 

Das Verstecken von Fehlern gegenüber dem Benutzer erhöht dessen Komfort beim Verwenden der Applikation und senkt das Risiko, sicherheitsrelevante Daten unbeabsichtigt nach außen dringen zu lassen. Ihnen sind sie allerdings oft ein arges Hindernis beim Debugging der Anwendung. Aus diesem Grund werden mit Hilfe der Debug-Komponente Logging-Funktionen für Fehler in das GP-Blog eingefügt. Mittels eines einfachen Schalters können Sie der Applikation detaillierte Informationen über aufgetretene Fehler entlocken.




Ihre Meinung






