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

Contribuez .NET Discussion :

Un article sur la gestion d'exception ?


Sujet :

Contribuez .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut Un article sur la gestion d'exception ?
    Bonjour,

    Au cours de mes recherches sur le net (forums, exemples, tutoriaux, etc..) il m'a semblé constater que la gestion d'exception était un mécanisme souvent mal compris ou mal appliqué.

    On voit souvent des catch(Exception e) tout au sommet, des blocs catch vides qui dissimulent l'erreur etc...

    Je me suis donc demandé si un article regroupant quelques explications, la mise en évidence des erreurs fréquemment commises ainsi que quelques *best practices* trouverait sa place dans la rubrique .Net ?

  2. #2
    Membre émérite
    Avatar de efficks
    Inscrit en
    Septembre 2005
    Messages
    712
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 712
    Par défaut
    Bien c'est pas bien compliqué.
    - Utiliser l'exception le plus haut niveau possible. Par exemple DivisionByZeroException au lieu de Exception.
    - Diviser les exception dans plusieurs catch pour un même bloque pour les traiter individuellement.
    - Prévenir les erreurs car le traitement d'exception est très coûteux. Par exemple, vérifier le diviseur avant de diviser au lieu de traiter l'exception. Prends moins de temps.

  3. #3
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Ca ce sont les "best practices", il y a aussi le fait que l'on ne doit catcher que les exceptions que l'on a anticipé et pour lesquels on a effectivement prévu de réagir (inutile par exemple de gérer OutOfMemoryException), utilité du try-finally (pour nettoyer ou libérer les ressources derrière soi sans forcément intercepter), différence entre throw; et throw ex; dans un bloc catch. La clause using etc...

    Il me semble que ce sont des choses qui échappent à beaucoup de monde même si elles sont pas bien compliquées.

  4. #4
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Citation Envoyé par _skip Voir le message
    Je me suis donc demandé si un article regroupant quelques explications, la mise en évidence des erreurs fréquemment commises ainsi que quelques *best practices* trouverait sa place dans la rubrique .Net ?
    Tout à fait, je pense également que ce serait très intéressant de proposer des best practises

  5. #5
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Qui peut rédiger cet article ? _skip ?
    J'ai hâte de le lire ^^

  6. #6
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Je pourrai sans doute essayer, faudrait juste que quelqu'un d'autre check derrière moi histoire que certains points de vue ne soient pas trop personnels

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Par défaut
    ça fait un moment que j'y pense mais je n'ai jamais concrétisé par manque de temps...

    A deux ça serait peut être plus facile, donc je veux bien co-signer un tel article si on trouve un plan permettant de partager la rédaction.

  8. #8
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Je pense que ce serait possible.
    Dans les grandes lignes, mon idée à travers cet article serait de ne pas se focaliser sur la définition des exceptions elles-mêmes ( tous les tutoriels du net font cela très bien), mais plutôt de mettre en évidence les erreurs fréquemment commises et de proposer quelques best practices.

    Ce pourrait être sans ordre spécifique :

    1) la mise en place d'une gestion intelligente, pas de catch(Exception), pas de swallowing, différence entre "throw;" tout court et "throw ex;".
    2) Expliquer qu'il est parfois préférable de "laisser exploser" que de catcher lorsque la situation n'est pas controllable, ou lorsqu'on a tout simplement pas prévu le coup.
    3) le nettoyage derrière soi, clause finally, using avec objets IDisposable... etc..
    4) le débat "prevention de l'exception" vs "reaction a l'exception" qui ont tous les deux une raisons d'être suivant les situations. Ainsi que le dilemme entre prévoir une gestion d'exception pour un traitement ou faire confiance?
    5) Utilisation d'exceptions personnalisées pour encapsuler des exceptions du framework et prévoir des messages d'erreur amicaux.
    6) Logger les exceptions non gérées (erreurs fatales) au moyen d'un handler global pour une application qui tourne en production.

    L'idée ne serait pas de dicter une conduite rigide mais d'introduire un point de vue utilisable pour des applications real-world.
    Qu'en dites-vous?

Discussions similaires

  1. Petit eclaircissement sur la gestion d'exceptions
    Par hh-cx dans le forum Langage
    Réponses: 0
    Dernier message: 11/11/2010, 18h13
  2. Sur la gestion des exceptions
    Par micheldup dans le forum Langage
    Réponses: 5
    Dernier message: 21/08/2010, 23h00
  3. Petite question sur la gestion des exception
    Par Wizard50 dans le forum C#
    Réponses: 1
    Dernier message: 05/05/2010, 09h17
  4. [Framework] Question sur la gestion des exceptions et du @Transactional
    Par franckbis dans le forum Spring
    Réponses: 0
    Dernier message: 13/01/2010, 11h53

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