Bien sûr, dans PHP vous pouvez intercepter toutes les exceptions levées avec:
try{
/* code with exceptions */
}catch(Exception $e) {
/* Handling exceptions */
}
Mais existe-t-il un moyen de vérifier le type d'exception de l'exception levée depuis l'intérieur du bloc catch?
Vous pouvez utiliser get_class
:
try {
throw new InvalidArgumentException("Non Sequitur!", 1);
} catch (Exception $e) {
echo get_class($e);
}
Vous pouvez avoir plusieurs blocs catch
pour intercepter différents types d'exceptions. Voir ci-dessous:
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.
}
Vous devez savoir qu'une fois qu'une exception est interceptée par une instruction catch
, aucune des instructions catch
suivantes ne sera déclenchée, même si elles correspondent à l'exception.
Vous pouvez également utiliser le get_class
méthode pour obtenir le nom de classe complet de tout objet, y compris les exceptions.