Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PEAR, PECL und Frameworks > gemeinsames Errorhandling (pear/php)
Antwort
 
Themen-Optionen
Alt 15.02.2006, 15:57   Nach oben    #1
Benutzer
 
Registriert seit: 28.12.2005
Beiträge: 35
Standard gemeinsames Errorhandling (pear/php)

Hallo zusammen,

nun setze ich mich schon seit einigen Wochen mit php und pear auseinander. Mittlerweile sitze ich auch seit 2 Wochen an einem größeren Projekt bei dem ich ganz gut voran komme.

Das Thema Errorhandling hab' ich dabei bisher leider ganz außen vor gelassen, was sich aber nun schon rächt. Ich würde nun gerne nachträglich - auch wenn's viel Arbeit ist - ein sauberes Errorhandling integrieren.

Dabei läge mir sehr viel daran sowohl php als auch den pear-errorstack damit zu behadeln. Kennt hier evtl. jemand gute Möglichkeiten. Gibt es dafür evtl. schon eine fertige Lösung die man adaptieren/anpassen könnte?

Leider habe ich mich mit dem Thema bisher noch gar nicht auseinander gesetzt, weshalb ich Euch bitten würde Eure Antworten möglichst Anfängergerecht zu formulieren

Danke!
lokari ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.02.2006, 16:09   Nach oben    #2
Erfahrener Benutzer
 
Registriert seit: 28.08.2004
Ort: konstanz am bodensee
Beiträge: 190
Standard

man kann pear so einstellen das es bei einem fehler einen normalen php fehler auslößt(ich glaube das ist die standart einstellung), dann kannst du über set_error_handler
einen user error handler setzen, das ist eine funktion die bei jedem php fehler (ausser parser fehlern) dann aufgerufen wird.
schon hast du dein sauberes error handling...

um das ganze abzurunden kannst du in php 5 noch den exeption handler über set_exception_handler setzen, damit kannst du auch nicht abgefangene exceptions behandeln.

als code sieht das dann ganz simpel etwa so aus

Code:
function my_exception_handler($exception) {
  echo "Uncaught exception: " , $exception->getMessage(), "<br>";
}
function my_error_handler($errno, $errstr, $errfile, $errline)
{
  echo "PHP Error($errno:( $errstr | $errfile:$errline<br>";
}

set_error_handler("my_error_handler")
set_exception_handler('my_exception_handler');
beny_mcde ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2006, 10:00   Nach oben    #3
Neuer Benutzer
 
Registriert seit: 02.01.2006
Beiträge: 13
Standard

Hallo lokari,

ich stand anfangs vor einem ähnlichen Problem. Mittlerweile habe ich eine recht akzeptable Lösung.
Ich benutze wie schon erwähnt z.B. in PHP4 die Funktionen:
PHP-Code:
ini_set('error_reporting'E_ALL);
set_error_handler(array('meineErrorKlasse''catchPhpError')); 
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array('meineErrorKlasse''catchPearError')); 
In den Funktionen catchPHPError und catchPearError, die nun automatisch aufgerufen werden wenn ein PHP-Error, Notice usw auftritt bzw PEAR ein Error-Objekt produziert, pushe ich die jeweiligen Fehlermeldungen auf einen dafür angelegten PEAR_ErrorStack. Ist die Bearbeitung meines Skripts beendet so rufe ich handleErrors auf die nun den ErrorStack der im Laufe der Abarbeitung über die Methoden gefüllt wurde, analysiert. Da sich die Elemente des ErrorStacks sehr gut sortieren lassen ist das perfekt geeignet sich im Fehlerfall direkt per Mail mit den notwendigen Angaben informieren zu lassen.
Eine fertige Lösung die diesen Bereich abdeckt habe ich damals nicht gefunden.
Hoffe das war Anfängergerecht genug.

Geändert von Cojote (17.02.2006 um 10:02 Uhr).
Cojote ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wie macht ihr euer Errorhandling? lycoos PHP-Programmierung 11 07.04.2006 15:40


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:46 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44