| |
| * Link führt ins Internet |
|
| |
Fehlersuche und Fehlerfinden
|
|
In diesem letzten Abschnitt soll Ihnen aufgezeigt werden, wie sich die Fehlersuche darstellt. Die Fehlersuche und Beseitigung kann in drei Phasen unterteilt werden:
1. Erkennen, dass ein Fehler vorliegt.
2. Suchen und finden des Fehlers.
3. Beseitigen Sie den Fehler.
Erkennen, dass ein Fehler vorliegt
Der beste Weg, Fehler in Ihrem Projekt und Ihren Skripten zu entdecken, besteht darin freiwillige Testpersonen mit Ihrem Projekt arbeiten zu lassen. Dies wird in der Entwicklung als Testphase bezeichnet. In der Softwareindustrie auch als Betatest bekannt.
Beobachtung von Variablen zur Laufzeit
Sie können hierzu den Befehls echo() verwenden, indem Sie die Inhalte verdächtiger Variablen im Browser ausgaben. Oft sind nicht nur die aktuellen Werte der Variablen von Interesse, sondern auch ander Informationen über die Variablen, zu deren Abfrage in PHP eine Reihe von Funktionen zur Verfügung stehen.
| Funktionen | Bedeutung |
| empty() | Ist die Variable leer? |
| gettype() | Ermittelt den Datentyp |
| is_array() | Ist Variable ein Array? |
| is_double() | Datentyp double? |
| is_float() | Datentyp float? |
| is_int() | Datentyp integer? |
| is_object() | Datentyp object? |
| is_real() | Datentyp real? |
| is_string() | Datentyp string? |
| isset() | Variable defniert? |
Bahandlung von Laufzeitfehlern
Wie Sie bereits erfahren haben stellen vor allem die Laufzeitfehler oftmals ein grösseres Problem dar. Diese Fehler gilt es mit Hilfe von entsprechenden Fehlerbehandlungsroutinen abzufangen. Dies ist jedoch eher eine Frage des sauberen Programmierstils als des Debugging.
Eine einfache Möglichkeit auf Laufzeitfehler zu reagieren, besteht darin, die Skriptausführung kontrolliert abzubrechen. Hierzu stehen in PHP die Sprachkonstrukte exit und die() zur Verfügung.
Während exit die Skriptausführung sofort abbricht, gibt die() vor dem Abbruch noch eine Meldung an den Browser aus.
Beispiel
<?php
$file = "htdocs/daten.txt";
$fp = fopen($file, "r") or die("Datei nicht gefunden: $file");
$dat = fread($fp, filesize($file));
fclode($fp);
?>
|
Ausgabe
Warning: fopen(htdocs/daten.txt) [function.fopen]: failed to open stream: No such file or directory in C:\php5xampp-dev\htdocs\php5\debugtest.php on line 3
Datei nicht gefunden: htdocs/daten.txt
|
Sollte die mit der Variablen $file referenzierte Datei nicht gefunden werden, wird die Skriptausführung beendet und zuvor noch eine entsprechende Meldung ausgegeben. Um die Interpreter eigene Warnung zu unterdrücken steht, wie Sie ja wissen das @-Zeichen zur Verfügung.
Beispiel
<?php
$file = "htdocs/daten.txt";
$fp = @fopen($file, "r") or die("Datei nicht gefunden: $file");
$dat = fread($fp, filesize($file));
fclode($fp);
?>
|
Ausgabe
Datei nicht gefunden: htdocs/daten.txt
|
Suchen und finden des Fehlers
Wenn Sie festgestellt haben, dass ein Fehler vorliegt, müssen Sie diesen suchen und finden. Einen Fehler zu finden ist häufig der schwierigste Teil. Die einfachste, aber auch zeitaufwendigste Methode einen Fehler zu finden besteht darin, Ihr Projekt auszuführen und Ihre Skripte Zeile für Zeile zu untersuchen. Zu dem Zeitpunkt, an dem der Fehler auftaucht, wissen Sie genau, welche Codezeile diesen verursacht. Diese Methode eignet sich jedoch lediglich bei kleineren Projekten. So vorzugehen, um ein komplexes und grosses Projekt nach Fehlern zu durchsuchen, wäre abwegig.
Die Alternative, die wesentlich schneller zum Ziel führt, wäre folgende: Sie sollten nur in Teilen des Projekts nach dem Fehler suchen, in denen Sie diesen vermuten. Wenn in Ihrem Projekt beispielsweise die Formularüberprüfung, für eines in Ihrem Projekt angelegten Formular nicht richtig durchgeführt wird, steckt der Fehler wahrscheinlich in dem Skript, in dem Sie die Methoden zur Überprüfung definiert haben.
| Tipp: Denken Sie daran, bei der Fehlersuche stehen Ihnen in PHP selbst nicht sehr viele Hilfsmittel zur Verfügung, jedoch bietet Ihnen das Maguma Studio ein hervorragendes Hilfmittel, nämlich den integrierten Debugger. Dieser kann Ihnen beim Auffinden der Fehler nur dann behilflich sein, wenn Sie diesen auch einsetzen. |
Sobald Sie den Fehlerhaften Teil isoliert haben, müssen Sie herausfinden, was den Fehler verursacht.
Beseitigen Sie den Fehler
Nun da Sie den Fehler gefunden haben, können Sie die Ursache und damit den Fehler beseitigen. Gehen Sie dabei vorsichtig vor! Oft genug kommt es vor, dass die Fehlerkorrektur, unbeabsichtigt, neue Fehler hervorruft. Daher ist es meist einfacher, einen grossen Anweisungsblock neu zu schreiben, als zu versuchen, einen Fehler in diesem zu korrigieren.
|
|
|
|
|
|
|