Fehler beim Definieren eines Exception Handlers

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fehler beim Definieren eines Exception Handlers

    Ich schreibe zur Zeit an einer Klasse für die Handhabung von Fehler und Exceptions. Nun ergibts sich folgendes Problem. Im Konstruktor wird die Klasse über set_error_handler und set_exception_handler eingebunden:
    PHP-Code:
     public function __construct ( ) {
        
    set_error_handler ( array ( &$this'handleError' ) );
        
    set_exception_handler ( array ( &$this'handleException' ) );

    Der Error Handler funktioniert soweit, bei dem Exceptionhandler ensteht aber beim definieren folgender Fehler:
    Code:
    set_exception_handler() expects the argument (Error::handleException) to be a valid callback
    die Funktion dazu sieht in etwas so aus:
    PHP-Code:
     public function handleException Exception $exception ) {
        
    $this -> _writeLog ( ... );                     
        
    $this -> _displayMessage ( ... );

        return 
    true;

    Wenn ich die Methode auskommentiere tritt der Fehler nicht mehr auf. Irgendwie verwirrt mich das etwas. Kann mir jemand sagen wie man den Fehler beheben kann?
    EDIT:
    zur Korektur: der Fehler tritt auf wenn die Funktion auskommentiert ist, das Problem ist mehr, dass nichts mehr ausgegeben wird wenn die Funktion definiert wird, obwohl ich nirgendwo eine Exception erzeuge ... die Ausgabe fehlt auch wenn die Funktion nur definiert ist aber garnicht als Exception Handler deklariert wurde.
    EDIT:
    Ich bin noch etwas weiter: Der unten gepostete Teil der Funktion scheint die fehlende Ausgabe zu verursachen, allerdings macht er das nur in der Funktion handleException (und komischerweise auch wenn die Funktion nirgendwo aufgerufen wird.
    PHP-Code:
    $this -> _writeLog ( array ( 'type' => 'Exception',
                            
    'time' => time ( ),
                            
    'file' => ( !empty ( $exception -> getFile ( ) ) ) ?  $line false,
                            
    'line' => ( !empty ( $exception -> getLine ( ) ) ) ?  $line false,
                            
    'message' => $exception -> getMessage ( ),
                            
    'lines' => $this -> _getAffectingLines $exception -> getFile,  $exception -> getLine ( ) ) ) ); 
    EDIT:
    in dem letzten Statement hatten sich einige Fehler eingeschlichen die nun beseitigt sind ... es funktioniert wieder - kann mir allerdings nicht erklären warum ohne Fehler einfach so die Ausgabe geschluckt wird.
    Zuletzt geändert von tontechniker; 19.02.2007, 21:07.
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]
Lädt...
X