2016-07-11 9 views
4

Natürlich in PHP können Sie alle geworfen Ausnahmen fangen:PHP Check geworfen Ausnahmetyp

try{ 
    /* code with exceptions */ 
}catch(Exception $e) { 
    /* Handling exceptions */ 
} 

Aber ist es eine Möglichkeit, den Ausnahmetyp des geworfenen Ausnahme von innerhalb des catch-Block zu überprüfen?

Antwort

6

Sie mehrere catch Blöcke können verschiedene Ausnahmetypen zu fangen. Siehe unten:

try { 
    /* code with exceptions */ 
} catch (MyFirstCustomException $e) { 
    // We know it is a MyFirstCustomException 
} catch (MySecondCustomException $e) { 
    // We know it is a MySecondCustomException 
} catch (Exception $e) { 
    // If it is neither of the above, we can catch all remaining exceptions. 
} 

Sie sollen wissen, dass, sobald eine Ausnahme von einer catch Anweisung abgefangen wird, keine der folgenden catch Anweisungen ausgelöst werden, auch wenn sie die Ausnahme entsprechen.

Sie können auch die get_class-Methode verwenden, um den vollständigen Klassennamen eines Objekts einschließlich Exceptions abzurufen.

12

get_class sollte funktionieren:

try { 
    throw new InvalidArgumentException("Non Sequitur!", 1); 
} catch (Exception $e) { 
    echo get_class($e); 
} 
+0

Genau das, was ich wollte, ich werde upvote wenn ich wieder :) –