Mailinglisten-Archive |
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