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

 .NET Discussion :

Retour au début du code SI erreur


Sujet :

.NET

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut Retour au début du code SI erreur
    Bonjour,
    j'ai un bloc d'instructions avec un TRY CATCH , et une exception WebException .
    je cherche comment faire pour que si l'opération échoue , on fait un retour au début du code pour refaire l'opération à nouveau(tout cela dans le code c#) c'est COMME UN ROLLBACK dans SQLSERVER.
    excusez ma façon de décrire .
    MERCI

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Je ne vois pas trop le rapport le rapport avec ROLLBACK, mais passons...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    while(true)
    {
        try
        {
            // Opération qui peut planter
            ...
     
            break;
        }
        catch(WebException ex)
        {
        }
    }

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    y a pas de rapport avec ROLLBACK mais juste ça pourrait être pareil , genre s'il y a une erreur dans le try on affiche le message de CATCH et on refais l'opération dés le début de TRY..ou quelque chose de ce genre

  4. #4
    Membre régulier
    Femme Profil pro
    Etudiante en Développement
    Inscrit en
    Avril 2012
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante en Développement
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 106
    Points : 119
    Points
    119
    Par défaut
    Attention toutefois à ne pas tomber dans une boucle infinie si le code échoue à chaque fois.

    J'ajouterais quelque chose comme un compteur qui s'incrémente à chaque tentative et qui ferait le break quand il arrive à X tentatives (on peut se dire que s'il ne réussit toujours pas au bout de 20 fois, il y a peu de chance qu'il y arrive à la 21ème )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    int tentative = 0;
    while(true)
    {
        try
        {
            // Opération qui peut planter
            ...
     
            break;
     
           if(tentative >= 20)
                 break;
        }
        catch(WebException ex)
        {
             tentative++;
        } 
    }

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par alucia Voir le message
    J'ajouterais quelque chose comme un compteur qui s'incrémente à chaque tentative et qui ferait le break quand il arrive à X tentatives (on peut se dire que s'il ne réussit toujours pas au bout de 20 fois, il y a peu de chance qu'il y arrive à la 21ème )
    Effectivement c'est une bonne idée, mais avec le code que tu proposes, le if(tentative >= 20) ne sera jamais atteint : soit l'opération réussit, dans ce cas le break est exécuté et on sort de la boucle ; soit l'opération échoue, et dans ce cas on passe directement dans le catch, en sautant le if... Il vaudrait mieux mettre ce if au début de la boucle, voire carrément remplacer le while par un for.

  6. #6
    Membre régulier
    Femme Profil pro
    Etudiante en Développement
    Inscrit en
    Avril 2012
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante en Développement
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 106
    Points : 119
    Points
    119
    Par défaut
    Ah bien vu ! J'avais oublié ce détail

    Oui dans ce cas c'est bien plus simple de le mettre directement en condtion de boucle (while(tentative < 21)) ou d'en faire une for

Discussions similaires

  1. Intercepter les codes d'erreurs Interbase
    Par tintin22 dans le forum InterBase
    Réponses: 1
    Dernier message: 14/06/2005, 21h31
  2. [sqlplus] code d'erreur
    Par jean-jacques varvenne dans le forum Oracle
    Réponses: 6
    Dernier message: 25/01/2005, 07h47
  3. Redirection et code d'erreur.
    Par ggnore dans le forum Linux
    Réponses: 4
    Dernier message: 08/11/2004, 10h25
  4. Codes d'erreurs des exceptions
    Par dway dans le forum Assembleur
    Réponses: 3
    Dernier message: 08/09/2004, 09h37
  5. [Oracle][ADO_QRY] Récupérer le code d'erreur
    Par Cryonie dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/06/2004, 13h18

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