vendredi 25 septembre 2026

À propos

Contact

Lexique · PHP

Gestion des exceptions

En anglais : « Exception handling »

Mécanisme du langage permettant d'interrompre proprement l'exécution en cas d'erreur, de la « lancer » puis de la « rattraper » pour la traiter.

Plutôt que de laisser un script s’arrêter brutalement quand une opération échoue — un fichier introuvable, une valeur inattendue —, PHP permet de signaler l’incident sous forme d’objet (une exception) que le code appelant peut choisir de traiter. C’est un peu comme lever la main en cours pour signaler un problème, plutôt que de quitter la salle sans explication.

Fonctionnement en PHP

On déclenche une exception avec throw new Exception('message'), et on l’intercepte avec un bloc try { ... } catch (Exception $e) { ... }. Un bloc finally optionnel s’exécute dans tous les cas, qu’une exception ait été levée ou non. PHP fournit une hiérarchie de classes (TypeError, ValueError, InvalidArgumentException…) toutes descendantes de l’interface Throwable.

Dans WordPress

Le cœur historique de WordPress évite les exceptions et préfère la classe WP_Error, retournée par des fonctions comme wp_insert_post() en cas d’échec. Les API plus récentes (REST API, certaines classes de WP_REST_Controller) et la plupart des bibliothèques Composer utilisées dans les extensions, elles, s’appuient pleinement sur les exceptions.

Exemple

try {
    $resultat = 10 / $diviseur;
} catch (DivisionByZeroError $e) {
    error_log('Division invalide : ' . $e->getMessage());
    $resultat = 0;
}

Bon à savoir

Un bloc catch trop large (catch (\Throwable $e) partout) masque des bugs qui mériteraient de remonter. Dans une extension qui mélange du code WordPress classique et des bibliothèques externes, il est courant de convertir une exception attrapée en WP_Error avant de la faire remonter à l’utilisateur, pour rester cohérent avec les conventions du cœur.