## Les Erreurs en PHP 7

PHP 7 modifie la façon dont la plupart des erreurs sont signalées en PHP. Au lieu d'utiliser le mécanisme traditionnel de gestion d'erreur de PHP 5, la plupart des erreurs sont maintenant signalées en levant 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 défaut, 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 Error. Il faudra donc utiliser soit un bloc `catch (Error $e) { ... }`, soit un gestionnaire d'exception défini avec set_exception_handler().

### Hiérarchie Error

- Throwable
  - Error
    - ArithmeticError
      - DivisionByZeroError
    - AssertionError
    - CompileError
      - ParseError
    - TypeError
      - ArgumentCountError
    - ValueError
    - UnhandledMatchError
    - FiberError
    - RequestParseBodyException
  - Exception
    - ...

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open