PHP7 modifie la facon dont la plupart des erreurs sont rapportées en PHP. Au lieu d'utiliser le mécanisme traditionel de gestion d'erreur de PHP 5, la plupart des erreurs sont maintenant rapportées en lancant une exception Error
Comme pour les exceptions normales, ces exceptions Error remonteront jusqu'à ce qu'elles atteignent le premier bloc d'attrape catch correspondant. S'il n'y a pas de bloc correspondant, le gestionnaire d'exception défini par défaut avec la fonction set_exception_handler() sera appelé. Et s'il n'y a pas de gestionnaire d'exception par defaut, alors l'exception sera convertie en erreur fatale et sera traitée comme une erreur traditionnelle.
Comme la hiérarchie des classes Error n'hérite pas
d'Exception, le code qui utilise les blocs d'attrape
catch (Exception $e) { ... }
pour traiter les exceptions
non-interceptées en PHP 5 n'interceptera pas ces exceptions
Errors.
Il faudra donc utiliser soit un bloc catch (Error $e) { ... }
,
soit un gestionnaire d'exception défini avec set_exception_handler().