phpbar.de logo

Mailinglisten-Archive

[php] PEAR | Error Handling | Callback

[php] PEAR | Error Handling | Callback

Sebastian Tobias Mendel genannt Mendelsohn lists at sebastianmendel.de
Don Feb 5 16:05:49 CET 2004


Olaf Gleba wrote:

> 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 ?

--> debug_backtrace() (> 4.3) oder debug_print_backtrace() (> 5.cvs)

könnte dir vielleicht helfen


-- 
Sebastian Mendel (www.sebastianmendel.de)

*www.warzonez.de* | www.tekkno4u.de | www.nofetish.com

php::bar PHP Wiki   -   Listenarchive