RFC: Exceptions in the engine

La RFC: Exceptions in the engine visait à généraliser l’utilisation d’exceptions dans le moteur PHP ainsi qu’à transformer en exceptions la plupart des erreurs fatales, ce afin de laisser aux applications la possibilité de contrôler ces erreurs.

Cette RFC introduisait pour cela deux nouveaux types d’exceptions :

  • EngineException : type d’exception générique générée par le moteur PHP
  • ParseException : exception générée lorsque le code PHP ne peut être traité

À cela s’ajoute une classe de base, abstraite, BaseException, qui viendrait se mettre en place dans la hiérarchie des exceptions comme suit :

BaseException (abstract)
 +- EngineException
 +- ParseException
 +- Exception
     +- ErrorException
     +- RuntimeException
         +- ...
     +- ...

Les blocs attrapant les exceptions de type Exception n’attraperaient pas ces nouvelles exceptions, ne générant ainsi aucun effet de bord côté utilisateur.

Il est ressorti de nos échanges que nous étions en très large majorité en faveur de cette RFC et avons donc posté en ce sens sur internals@.

Avec 60 voix pour et seulement 2 contre, cette RFC a été accepté et sera mise en place dans la version 7 de PHP.

Une réflexion au sujet de « RFC: Exceptions in the engine »

  1. Ça voudrait dire qu’il sera possible de catcher n’importe quel problème ? Si c’est le cas, ça sera une bonne nouvelle. Maintenant, ça serait aussi cool que les stacks soient affichées de façon un peu plus sympa (mais pas en HTML, c’est indébuggable en XHTML). Mais bon, avec ça, il sera certainement possible de faire des loggers pour tout problème.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *