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

C++ Discussion :

Exceptions ou tests ?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de b Oo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 179
    Par défaut Exceptions ou tests ?
    Bonjour à tous,
    j'aimerais savoir quand utiliser les exceptions.

    Par exemple, je me demande si lorsque je demande à un utilisateur de rentrer un nom de fichier pour le lire, et que celui-ci se trompe dans le nom du fichier si je dois utiliser une exception ou plutôt faire un test juste après.
    Autre exemple, si je demande un nombre à un utilisateur pour qu'il divise un autre nombre. S'il rentre 0, je fais juste un test ou je fais une exception ?

    Plus généralement, j'aimerais comprendre pourquoi je dois utiliser un test plutôt qu'une exception et vice-versa.

    Merci d'avance.

    b Oo

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 87
    Par défaut
    Les exceptions sont a choisir en priorite lorsque votre code est destinne a etre utilise par d'autres programmeurs. Cela va d'une part permettre d'eviter les mauvaises surprises, et surtout cela va aussi permettre au programmeur 'client' de pouvoir gerrer l'erreur de la facon dont il le souhaite.

    Il est bien plus propre de gerrer les comportements inatendus (dont login/pass mauvais) par des exceptions, seulement vous pouvez faire des code tout aussi propres sans exception pour votre cas d'utilisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    couple_id_pass  identifiants
    bool            validite = false
     
    FAIRE
      identifiants = demander_login_pass;
      validite = identifiants_valides (identifiants) ?
    TANT QUE validite == FALSE
    en ajoutant un compteur pour eviter la boucle infinie et pourquoi pas un timer pour eviter les brute forces, etc ^^

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 87
    Par défaut
    Tient je ne sais pas pourquoi je suis partis dans ce trip de login/mot de passe, j'etais persuade ca faisait parti de votre question Ce n'est pas grave, l'exemple et les explications restent valables

  4. #4
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Faire des exceptions permet de bien séparer code et traitement des erreurs.
    Ceci évite d'alourdir des parties de code avec des if(...) à la chaîne.

  5. #5
    Membre confirmé Avatar de b Oo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 179
    Par défaut
    Merci pour les réponses,
    Citation Envoyé par busy999
    Les exceptions sont a choisir en priorité lorsque votre code est destinne a etre utilise par d'autres programmeurs.
    Donc si mon programme n'est que "exécutable" les exceptions devraient être rarement utilisées, ou vous voulez dire que je pourrais m'en passer mais que cela n'est pas recommandé ?

    Citation Envoyé par seriousme
    Faire des exceptions permet de bien séparer code et traitement des erreurs.
    Pour cela on est d'accord, et je dirais que si l'on veut changer comment l'on rattrape l'exception cela est plus simple.

    Le problème c'est que j'ai l'impression que les exceptions sont assez "lourdes". J'entends par là que pour moi c'est comme si on envoyait un char d'assaut pour tuer une fourmi.

    Citation Envoyé par seriousme
    Ceci évite d'alourdir des parties de code avec des if(...) à la chaîne.
    Ok d'accord, mais il ne vaut pas mieux contrôler ce que rentre l'utilisateur (et donc passer à mes classes des paramètres valides qui empêche des exceptions) plutôt que de ne rien contrôler et laisser déclencher une exception ?

    En fait je n'arrive pas à très bien distinguer où les exceptions sont nécessaires ou non.

    Par exemple si je fais une classe string, il vaut mieux que mon programme génère une exception si je suis en dehors des limites du tableau, ou un test me suffit ?

    b Oo

  6. #6
    Membre expérimenté
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 237
    Par défaut
    Par exemple si je fais une classe string, il vaut mieux que mon programme génère une exception si je suis en dehors des limites du tableau, ou un test me suffit ?
    Ici, je dirais une exception car afficher un message d'erreur est basique. On ne peut pas faire d'autre traitement contrairement à une exception.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 14
    Dernier message: 08/01/2013, 22h36
  2. exception au test de connection
    Par WebMeli dans le forum Visual Studio
    Réponses: 0
    Dernier message: 24/03/2011, 07h29
  3. [JUnit] Tests Junit avec exceptions
    Par alex2746 dans le forum Tests et Performance
    Réponses: 8
    Dernier message: 07/06/2010, 22h41
  4. exception lors de l'exécution d'un test d'application
    Par caro_caro dans le forum SWT/JFace
    Réponses: 6
    Dernier message: 10/12/2008, 12h47
  5. load test et webtest exception
    Par ddoc dans le forum C#
    Réponses: 0
    Dernier message: 30/08/2007, 12h06

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