phpbar.de logo

Mailinglisten-Archive

[php] PEAR | Error Handling | Callback

[php] PEAR | Error Handling | Callback

Olaf Gleba list at creatics.de
Don Feb 5 15:47:24 CET 2004


Hallo,

irgendwas scheine ich da noch nicht zu begreifen.

Ich versuche gerade, das Error Handling in einer kleinen eigenen App ein
wenig übersichtlicher, bzw. steuerbarer zu machen.

Ich übergebe dem Callback als Objektreferenz die smError Klasse, die in
einer eigenen Datei liegt und die über eine core Datei (von der alle Klassen
erweitert werden) instanziert wird  und somit als "$this" in z.B der
Datenbank Klasse zur Verfügung steht.

PEAR::setErrorHandling(PEAR_ERROR_CALLBACK,
array($this->smError,'pearError'));

Die genutzte Funktion in der error.class.php sieht folgendermaßen aus:

function pearError($err_obj)
{
 if (DEBUG == true) { //DEBUG wird in der Klasse übergreifend definiert
            
print ("
Debug: ".$err_obj->getDebugInfo()."<br />
Error: ".$err_obj->getMessage()."<br />
... etc. ...       
Klasse: ".__CLASS__."<br />
... etc. ...
} else {
 print 'Hier die Userinfo ohne Debug';
}
die;
}

Alles wunderbar, so lange ich das Error Objekt abfrage ($err_obj). Die
magischen Funktionen allerdings geben mir natürlich nicht das, was ich
eigentlich haben will...
Ich will ja nicht den Funktionsnamen, die betroffene z.B Klassennamen der
error.class.php, sondern den, in denen der Fehler aufgetreten ist.
Das oben gepostete kann also nicht funktionieren ;)

Wie komme ich innerhalb der Funktion (pearError) an die relevanten Ausgaben
des Fehler Returns ?

Als Gegenstück zum direkten Aufruf in der entsprechenden Funktion der DB
Klasse, das mir ja genau das gewünschte liefert...
if(DB::isError($this->db)) {
print ("Debug: ".$this->db->getDebugInfo()."<br />
... etc. ...

Möglich oder muss ich anders rangehen ?

gruss
Olaf


     

-- 
Olaf Gleba | creatics media&systems
http://www.creatics.de | mailto:og at creatics.de


php::bar PHP Wiki   -   Listenarchive