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

Modélisation Discussion :

architecture MVC et gestion des erreurs


Sujet :

Modélisation

  1. #1
    Membre averti Avatar de mapmip
    Profil pro
    ulla
    Inscrit en
    Juillet 2006
    Messages
    1 314
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ulla

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 314
    Points : 346
    Points
    346
    Par défaut architecture MVC et gestion des erreurs
    bonjour,

    je souhaite savoir si c'est une bonne pratique du point de vue de la gestion des erreurs/exceptions dans une architecture MVC


    les try catch se trouvent uniquement dans le code des controleurs,
    pas de gestion des erreurs dans les codes des modèles.

    Est-ce une bonne pratique?

    merci d'avance

  2. #2
    Membre émérite
    Inscrit en
    Janvier 2011
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Janvier 2011
    Messages : 805
    Points : 2 917
    Points
    2 917
    Par défaut
    Bonjour,

    Le Contrôleur étant l'objet ultime avant la Vue qui peut légitimement contenir de la logique non-"pur UI", c'est effectivement une bonne idée d'y gérer les exceptions qui seraient passées au travers des mailles des couches précédentes. Ca ne veut pas dire que chaque méthode de Contrôleur doit contenir un try/catch - la plupart des frameworks MVC fournissent des mécanismes centralisés pour gérer les exceptions uniformément sur toutes les actions des Contrôleurs. Ex : pour toutes les business exceptions, je reste sur la même page en affichant le message d'erreur dans un encadré. Pour toutes les exceptions techniques, je renvoie vers une page d'erreur technique, etc.

    Néanmoins, un Contrôleur particulier pourra exceptionnellement avoir besoin de faire un try/catch quand il s'attend à un type d'exception spécifique et veut la gérer aux petits oignons, mais cela reste rare.

    pas de gestion des erreurs dans les codes des modèles
    C'est moins vrai, attraper les exceptions dans les Contrôleurs ne nous affranchit pas de la nécessité de s'en occuper dans les autres couches. La notion de Model en MVC est tellement vague qu'elle peut recouper à peu près n'importe quelle réalité, mais voici des exemples de gestions des exceptions qui pourraient être menées dans le "Model" :

    • Attraper une exception de plus bas niveau et décider l'impact que cela doit avoir sur une transaction métier en cours (rollback, continuation...). Ex : boutique en ligne, le serveur de mail me renvoie une exception lorsque j'essaie d'envoyer le mail de confirmation de commande à mon client. Cela doit-il annuler la transaction ?
    • Lever une exception typée Business quand une chose interdite par une règle métier se produit.
    • Lever une exception technique fine quand un cas problématique techniquement se présente (paramètre null, cast illégitime...). Ca peut paraître de la programmation défensive mais c'est peut-être plus parlant que par exemple une NullReferenceException qui se produira immanquablement plus tard dans l'exécution.
    • etc.


    un bon article sur le sujet : http://codebetter.com/karlseguin/200...cs-exceptions/

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/08/2011, 16h12
  2. [PHP 5.3] Gestion des erreurs et exceptions et MVC
    Par RunCodePhp dans le forum Langage
    Réponses: 4
    Dernier message: 28/01/2011, 12h42
  3. [.Net MVC]ViewModel Pattern et gestion des erreurs
    Par manu11 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/01/2010, 23h03
  4. [XSLT]Est ce qu'il y'a la gestion des erreur en xslt ?
    Par miloud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/02/2004, 18h19
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 23h41

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