Ces dernières années les outils d'analyse statique du code (comme Psalm ou PHPStan) se sont imposés dans nos projets. Ils permettent de nous montrer des erreurs en l'espace de quelques secondes sans avoir à exécuter notre code.
Les exceptions font également partie intégrante de nos projets car elles offrent une manière simple pour sortir du chemin d'exécution nominal. Cependant ce mécanisme opère en dehors du système de typage (puisqu'elles n'apparaissent pas dans la signature des fonctions) ce qui empêche les outils d'analyse statique de vérifier que chaque Exception est gérée correctement. Ce manque d'outillage nous impose de faire cette vérification via des tests fonctionnels (donc plus lents à détecter les problèmes).
On verra comment le pattern Monad (via Either et Maybe) venant de la programmation fonctionnelle nous permet de gérer nos exceptions d'une manière compréhensible par les outils d'analyse statique. Le but étant d'accélerer et d'augmenter la fiabilité de la gestion des erreurs en supprimant le besoin d'écrire des tests nous même.
Tweets