IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Comment utiliser les exceptions de la SPL pour une meilleure gestion des erreurs ? [Tutoriel]


Sujet :

Langage PHP

  1. #1
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut Comment utiliser les exceptions de la SPL pour une meilleure gestion des erreurs ?


    itanea vous propose une traduction de l'article anglophone How to use built-in SPL exception classes for better error handling.

    Comment utiliser les exceptions de la SPL pour une meilleure gestion des erreurs ?

    Cet article vous propose de creuser un peu plus la question et de trouver des exceptions adaptées à différentes situations. L'objectif final n'étant pas d'étaler son savoir sur les exceptions SPL en soirée mais bien de faciliter le débogage de ses applications.

    N'hésitez pas à faire part de vos commentaires ou remarques concernant cet article.

    à lui !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Salut,

    Dans le dernier morceau de code (partie "UnexpectedValueException"), il manque un échappement de quote :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    throw new UnexpectedValueException('Le paramètre doit être l'une des constantes TYPE_*');

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Bisûnûrs
    Dans le dernier morceau de code (partie "UnexpectedValueException"), il manque un échappement de quote :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    throw new UnexpectedValueException('Le paramètre doit être l'une des constantes TYPE_*');
    Arf... bien vu

    C'est rectifié.

    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 21
    Points : 69
    Points
    69
    Par défaut
    Article interressant, neanmoins je pense qu'il aurait été plus positif de présenter les exceptions par heritage et non par ordre alphabétique.
    Typiquement, avec votre approche, il n'est pas aisé d'expliquer LogicException (ou RuntimeException), mais il aurait était plus simple de présenter ces deux classes parentes comme des domaines qui concernent respectivement la logique de l'application (problème à corriger au niveau développement) ou qui concerne l’exécution (problème à remonter à l'utilisateur)

    Ou vous auriez pus également présenter les exceptions par paires : par exemple InvalidArgumentException vs UnexpectedValueException qui concernent tous les deux un problème au niveau des arguments passés a la méthode, mais l'un est de type logic et l'autre de type runtime ou encotre RangeException vs DomainException

    Pour rappel, l'héritage de la SPL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Exception
        LogicException
            BadFunctionCallException
                BadMethodCallException
            DomainException
            InvalidArgumentException
            LengthException
            OutOfRangeException
        RuntimeException
            OutOfBoundsException
            OverflowException
            RangeException
            UnderflowException
            UnexpectedValueException

  5. #5
    Membre éclairé Avatar de Code62
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Points : 898
    Points
    898
    Par défaut
    Gros +1 sur ce que dit Revlis, mais c'est malheureusement comme ça dans l'article d'origine dont celui-ci n'est qu'une traduction :/

    Du coup ma question serait plutot: pourquoi avoir simplement traduit un article "basiquement intéressant, mais illogique", au lieu de s'en inspirer pour écrire quelque chose de plus pertinent ?


    Et en passant (mais c'est encore quelque chose qui devrait plutot etre remonté à l'auteur de l'article d'origine): certes la doc sur php.net est pauvre, mais elle est collaborative, un peu comme sur wikipédia; au lieu de répéter sans cesse qu'elle est trop pauvre - comme c'est fait au début de l'article - et de pondre des articles au quatre coins du web pour tenter de pallier ça, ça serait bien que les développeurs php s'impliquent directement dans l'amélioration de la doc officielle
    "Le premier venu peut écrire du code qu'un ordinateur peut comprendre. Les bons programmeurs écrivent du code que les humains peuvent comprendre."
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
    (Martin Fowler)

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/07/2009, 21h48
  2. Réponses: 0
    Dernier message: 18/07/2009, 21h48
  3. Réponses: 6
    Dernier message: 03/05/2007, 11h28
  4. [VBA EXCEL]comment utiliser les boites a outils control sur une feuille excel
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/02/2007, 19h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo