2017-03-24 4 views
1

Ich versuche zu folgen Can I try/catch a warning? und behandeln alle Warnungen als Ausnahmen. Ich kann die Fehlerdetails in der benutzerdefinierten Fehlerbehandlung abrufen, aber die ErrorException, die ich in meinem catch-Block erhalte, ist immer leer.PHP Try Catch mit benutzerdefinierten Fehlerhandler gibt immer leere Ausnahme

private function SetCustomExceptionHandler() { 
     set_error_handler(function($errno, $errstr, $errfile, $errline, array $errcontext) { 
      log_message('error', '$errno ' . $errno); 
      log_message('error', '$errstr ' . $errstr); 
      log_message('error', '$errfile ' . $errfile); 
      log_message('error', '$errline ' . $errline); 
      log_message('error', '$errcontext ' . json_encode($errcontext)); 

      throw new ErrorException($errstr, 0, $errno, $errfile, $errline); 
     }); 
    } 

$this->SetCustomExceptionHandler(); 
      try { 
       //LDAP query that returns: ldap_search(): Partial search results returned: Sizelimit exceeded 
      } 
      catch (ErrorException $e) { 

       log_message('error', json_encode($e)); 
      } 
+0

Vielleicht gibt es keine JSON-Codierung für Ausnahmen. – Barmar

Antwort