Ankündigung

Einklappen
Keine Ankündigung bisher.

korrektes Fehlerhandling

Einklappen

Neue Werbung 2019

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

  • korrektes Fehlerhandling

    Ich habe eine Applikation geschrieben, die unter Anderem via LDAP auf das Active Directory zugreift. Nun habe ich folgendes Codestück, das mir Sorgen bereitet:
    PHP-Code:
    try {
        
    // hier kommt noch mehr Code

        
    $bind = @ldap_bind($con$this->ldap['username'], $this->ldap['password']);

        if (!
    $bind) {
            throw new 
    Exception('Binding to LDAP failed!');
        }

        
    // hier kommt auch noch mehr Code
    } catch (Throwable $ex {
        return 
    $ex;

    Man soll Fehlermeldungen ja grundsätzlich nicht mit '@' unterdrücken. Allerdings wirft ldap_bind() eine Notice wenn es fehlschlägt und die kann man nicht abfangen.
    Ist meine Lösung für das problem gut, oder gibt es da eine bessere Variante?

  • #2
    Allerdings wirft ldap_bind() eine Notice wenn es fehlschlägt
    Das sollte mit http://php.net/manual/de/function.set-error-handler.php abfangbar sein.

    Kommentar


    • #3
      Was ich ganz gerne mache ist grundsätzlich alles in ErrorExceptions zu konvertieren:

      PHP-Code:
      set_error_handler(function($errno$errstr$errfile$errline, array $errcontext){
          throw new 
      ErrorException($errstr0$errno$errfile$errline);
      }); 
      Damit wirft dann auch ldap_bind indirekt eine Exception.
      [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

      Kommentar


      • #4
        Danke für die Antworten

        Kommentar


        • #5
          Mit einem eigenen Errorhandler kann man auch gezielt und temporär bestimmte Notices/Warnungen unterdrücken. Ich verweise dafür mal auf einen alten Beitrag hier im Forum.

          Kommentar

          Lädt...
          X