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

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 gnzlich 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;
}
?>

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");

/** Auszufhrender Code **/

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

/** Weiterer Code **/
?>


Schritt 4 - Exceptions

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 **/

?>


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?

Kommentare

Kommentare zu dieser Tutorial

30.11.2012 15:44 WebmasterHelp

hnliche Tutorials

hnliche Tutorials zu 'PHP5 Fehlermeldungen abfangen'