Tutorials Upload

PHP > PHP5 Fehlermeldungen abfangen

Autor: dr.allwissend
Seit PHP5 gibt es mehrere Arten der Fehlermeldungen und Wege, diese abzufangen.

Schritt 1

Unterschieden wird zwischen Laufzeitfehlern und Exceptions (Ausnahmebehandlungen).
Laufzeitfehler, die von PHP selbst bzw. durch den Aufruf von "trigger_error" erzeugt werden, kannst du durch die Definition und Zuweisung einer eigenen Fehlerbehandlungsmethode abfangen.
PHP bietet zur Unterscheidung des Fehlertyps vordefinierte Konstanten (siehe http://de2.php.net/manual/de/errorfunc.constants.php).
Schritt 2 - PHP Methode

Ein solche Methode sieht folgendermaßen aus:

PHP-Code

# Funktionskopf
function errorHandler($errorCode$errorMessage$file$line) {
switch ( 
$errorCode ) {
# Bei einem "Error" soll ein Text ausgegeben und
# das Programm angehalten werden
case E_USER_ERROR:
echo 
"FEHLER [$errorCode] $errorMessage in Datei $file [Zeile $line]
"
;
exit(
1);
break;
case 
E_USER_WARNING:
# Bei einer Warnung soll nur ein Text ausgegeben werden
echo "WARNUNG [$errorCode] $errorMessage in Datei $file [Zeile $line]
"
;
break;
case 
E_USER_NOTICE:
# Eine "Notiz" soll gänzlich ignoriert werden
break;
default:
# Bei allen Anderen (z.B. E_STRICT, E_DEPRICATED etc.)
# soll nur ein Text ausgegeben werden.
echo "Unbekannter Fehler: [$errorCode] $errorMessage in Datei $file [Zeile: $line]
"
;
break;
}

return 
true;
}
?>


Das "return true;" am Ende der Funktion ist wichtig - du sagst damit PHP, dass es die interne Abarbeitung des Fehlers (Ausgabe, Abbruch des Programms usw.) nicht weiterführen soll.
Schritt 3 - Anwenden der Methode

Mit folgender Zeile erreichst du, dass diese Methode auch benutzt wird, wenn ein Fehler erzeugt wird.

PHP-Code

# Es soll unsere eigene Fehlerbehandlung genutzt werden
set_error_handler("errorHandler");

/** Auszuführender Code **/

# Die PHP-Interne Fehlerbehandlung soll wieder genutzt werden
reset_error_handler();

/** Weiterer Code **/
?>


Schritt 4 - Exceptions

Exceptions bieten dir weitaus umfassendere Möglichkeiten, Fehler zu erzeugen und abzufangen.
Hier soll jedoch nur kurz angeschnitten werden, wie Exceptions funktionieren.

Dazu schauen wir uns folgendes Beispiel an.

PHP-Code


/** Weiterer Code **/

# Try-Block
try {
$emailAddress "test@test.de";
$subject "Text-Email";
$text "Hallo Welt!
"
;
# Mail-Versand fehlerhaft ?
if ( !mail($mail$subject$text) ) {
throw new 
Exception("Die Mail an $email konnte nicht versendet werden");
}
# Catch-Block
} catch ( Exception $e ) {
print 
"Fehler: Mailversand fehlgeschlagen
"
;
# Error-Log schreiben
$file fopen("error.log""a+");
fwrite($file$e->getMessage()."
"
.$e->getTraceAsString());
fclose($file);
}

/** Weiterer Code **/

?>


Wie du vielleicht schon erahnst wird im "try"-Block ein Code ausgeführt, der eine Exception auslöst (throw).
Exceptions können "gefangen" (catch) werden und in dem "catch"-Block kannst du definieren, was weiter geschehen soll. In unserem Beispiel wird eine Meldung ausgegeben und die Fehlermeldung in eine Datei geschrieben. Nützlich könnte dieses Vorgehen z.B. sein, um Formulareingaben zu validieren.

Wir wünschen dir viel Spaß beim Ausprobieren.

Keine Bewertung.

Dieses Tutorial wurde geschrieben von dr.allwissend - Homepage
Tags: php5 php fehlermeldungen

Kommentare

Kommentare schreiben
Um einen Kommentar zu schreiben musst du eingeloggt sein.

Noch nicht registriert?

Ähnliche Tutorials

Ähnliche Tutorials zu 'PHP5 Fehlermeldungen abfangen'