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 :

assertion vs exception


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 60
    Par défaut assertion vs exception
    salusalu

    Situation :
    Je réalise une application dans laquel je souhaite avoir un maximum de contrôle sur la gestion des erreurs aussi bien pour l'utilisateur final que pour le développeur tièrce qui utilisera l'application.
    Les messages ainsi générer doivent être précis (backtrace) tout en étant souple et rapide à utiliser pour les développeurs.

    Mon avis :
    Les assertions sont rapide à cour-circuiter et simple a mettre en oeuvre, en utilisant une fonction de callback ou peut contrôler les résulats.

    Les exceptions offre une plus grande liberté, mais sont plus compliqué a mettre en place, sourtout au début.

    Question :
    Actuellement, j'utilise les deux systèmes sans trop savoir quand et comment les utiliser.

    Quoi utiliser et quand ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Par défaut
    Salut

    Pour moi les assertions correspondent a qqch qui ne doit jamais arriver dans le programme final. Elles servent seulement pour toi ou le developpeur tierce pour debugger le programme. Elles ne servent pas pour l'utilisateur final (d'ailleurs en C++ les assertions sont ignores en Release).

    Pour les exceptions il s'agit de qqch qui ne doit normalement pas arriver, mais il ne s'agit pas forcement d'une erreure si cela arrive.
    C'est plus une facon de programmer, qui peut s'averer bien plus simple, que de faire des switch ou des if else interminable dans chaque fonction.
    Plutot que de traiter tous les cas meme le plus improbable dans tes fonctions tu traite juste le cas general et leve une exception pour les autres cas que tu traite a un niveau plus eleve.

    J'espere que j'ai bien repondu a ta question

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    salut
    les assertions sont pour controller une variable et si le controlle est negatif tu peut lancer une exception

    les assertions servent a controller un resultat attendue

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 60
    Par défaut
    qu'est elle donc la solution la plus compatible avec la phylosophie suivante : guérisson plutôt qu'information.

    Plus clairement : je vérife tous les types de paramêtre en entrée de chaque méthode, et si un des paramêtres et faux, soit je le corrige, soit je ne fait rien. Pas de message pas d'erreur, rien.
    Le seul moyen pour le développeur de connaitre l'erreur est donc d'activer les assertions.

    Est ce que cela vous parrait logique ?

    N'est-il pas plus aggréable pour une developpeur tièrce, de tomber (lors de ses développements) sur des dizaines d'exceptions qui arrête l'execution, pour lui permettre de corriger les erreurs une par une, et dans l'ordre ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    le mieux dans ce cas ets de mettre en place des test unitaire

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 60
    Par défaut
    c'est déjà fait

Discussions similaires

  1. Réponses: 17
    Dernier message: 05/03/2014, 14h03
  2. Réponses: 1
    Dernier message: 12/05/2009, 02h24
  3. assert ou generer une exception
    Par onap dans le forum C++
    Réponses: 2
    Dernier message: 01/12/2004, 16h49

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