Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Debugging - Fehlersuche in PHP
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 79.000 Beiträgen finden Sie sicher die passende Antwort!  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 



 

Fehlerarten




Fehler werden grundsätzlich in drei Gruppen eingestuft:
. Syntaxfehler
. Laufzeitfehler
. Logische Fehler


Syntaxfehler

Gerade als Programmierneuling sind Fehler oft unvermeidlich und diese tauchen immer dann auf, wenn Sie sie nicht erwarten. Die meisten Fehler beruhen auf einer fehlerhaften Syntax, diese werden auch als Syntaxfehler bezeichnet. Sie lassen sich recht einfach aus der Welt schaffen, indem Sie sich Ihre Codezeilen nach der Fehlerausgabe genauer betrachten. Hier einige Beispiele häufig vorkommender Syntaxfehler:

Fehlerhafte Bezeichner, welche nicht den Regeln entsprechen.


Beispiel



$über = 10 ;                
$erster Wert = 10;    



Die Anweisungsblöcke von Funktionsdefinition bzw. Kontrollstrukturen sind nicht korrekt beendet.


// Ergebnis: Fehlermeldung
function meineFunktion () {
        $zahlEins += 10;
        $zahlZwei *= 10;

// Ergebnis: Fehlermeldung
if ($signal) {
    $aktiv = true;
else {
    $aktiv = false;
}



Fehler die bei der Eingabe von Flieskommazahlen auftauchen, hier könnten Sie sagen typisch deutsch.


Beispiel



// Lösung: 1.95
$preis = 1,95;    



Sollte Ihr PHP-Skript nach der Entfernung aller Syntaxfehler ausgeführt werden, wissen Sie, dass es keine Syntaxfehler mehr enthält. Nun müssen Sie sich den Laufzeit- und Logischen Fehlern zuwenden.


Fehlende Klammern und Co.

Es wird Ihnen vor allem bei der Arbeit mit umfangreichen PHP-Skripten vorkommen, dass Sie Klammern eines Anweisungsblocks oder einer Schleife vergessen. In der Regle können Sie fehlende geschlossene Klammern daran erkennen, dass der PHP-Interpreter einen Fehler in der letzten Codezeile Ihres Skripts ausgibt.

Dies liegt daran, dass die abschliessende Klammer nicht gefunden wird und der Fehler erst am Ende des Skripts vom PHP-Interpreter bermerkt wird. Sie müssen in diesem Fall Ihr Skript sorgfältig durchgehen und nach der vergessenen Klammer suchen. Um dieses Problem von anfang an zu vermeiden, sollten Sie in solchen Fällen die Klammern von anfang an öffnen und schliessen und dann den benötigten Code einfügen.

Tipp: Sollten Sie eine Fehlermeldung zusammen mit einer Zeilennummer erhalten, bei der Sie sich sicher sind, dass sich dort kein Fehler befinden kann, dann betrachten Sie auch die Zeilen darüber und kontrollieren Sie diese. Vor allem bei nicht geschlossenen geht der PHP-Interpreter das gesamte PHP-Skript durch und gibt dann erst die letzte Zeile als Zeilennumer des Fehlers aus.



Laufzeitfehler

Ein Laufzeitfehler kommt immer dann vor, wenn Ihr Skript Daten erhält mit denen es nichts anfangen kann. Diese Fehlerart ist um einiges subtiler als Syntaxfehler. Ihr Skript kann eine Vielzahl von Laufzeitfehler besitzen, von denen Sie erst etwas merken, wenn Sie Ihr Skript ausführen. Ein Beispiel für einen Laufzeitfehler in einem Skript finden Sie in folgendem Beispiel:


function steuer() {
    $steuerSatz = $steuerSchulden/$einkommen;
}



Die Funktion führt normalerweise Ihre Anweisung fehlerfrei aus, solange das Einkommen grösser als 0 ist. Bei einem Einkommen von 0 gibt es ein Problem. Da die Division durch 0 nicht möglich ist, kommt es zu einem Fehler bzw. fehlerhafte Zuweisung. Um Laufzeitfehler zu entdecken, müssen Sie Ihr PHP-Skript mit jeder möglichen Eingabe testen, angefangen vom Drücken einer falschen Taste bis hin zu einer negativen Zahl, die ein Anwender als sein Einkommen eingibt. Dies bezeichnet man häufig als DAU Sicherung (DAU = Dümmster Anzunehmender User). Auch wenn diese Bezeichnung eines Anwender möglichst die heiligen vier Wände des Entwicklers nicht verlassen sollte.

Sie werden jedoch eines sehr schnell feststellen, da die Anzahl der Dinge, die schief gehen können, ins Endlose geht Murphy's Gesetz, verstehen Sie sicher, warum jedes Programm Bugs hat.


Logische Fehler


Neben den Syntax- und Laufzeitfehlern gibt es noch die Logischen Fehler. Diese Fehlerart tritt auf, wenn ein Skript deshalb nicht ordnungsgemäss funktioniert, weil Sie ihm die falschen Anweisungen oder die Anweisungen in der falschen Reihenfolge gegeben haben. Sie fragen sich wie das sein kann, wie Sie in einem Skript falsche Anweisungen ablegen können, wenn Sie doch selbst das Skript geschrieben haben. Glauben Sie es ruhig, es kommt vor!

Natürlich gehen Sie davon aus, dass Sie in all Ihren Skripten des Projekts die richtigen Anweisungen abgelegt haben. Sie haben zunächst keine Ahnung, warum Ihr Projekt nicht einwandfrei läuft. Jetzt gilt es die Stelle in den Skripten zu finden, an der Ihre Anweisungen nicht genau genug waren. Wenn Ihr Projekt recht umfangreich ist, kann das bedeuten, dass Sie in all Ihren Skripten Zeile für Zeile durchgehen müssen.

Wie Sie sehen, nicht gerade ein Zuckerschlecken, daher sollten Sie immer versuchen, den Überblick zu wahren. Ein Beispiel für einen Logischen Fehler darf nicht fehlen.


Beispiel



// Logischer Fehler (bei Schleifen)
// Ergebnis: Endlos Schleife
for ($i = 0;$i <= 100;$i--) {
    $summe += $i;
}




 


Fehlerprävention
 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2006 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de