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 :

Revenir en arrière après une exeption! C'est possible?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 118
    Par défaut Revenir en arrière après une exeption! C'est possible?
    Bonsoir,

    je voudrais savoir, s'il y a un moyen de revenir à la ligne du code qui a causer une exception (après avoir traiter l'exception )

    J'explique avec un exemple :

    Par exemple :
    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
     
      try
        { 
    z = x / y;
     
    e = x+y;
        }
        catch (System.DivideByZeroException dbz)
        {
             MessageBox.Show("Division by zero attempted!");
          z = 1; 
     
        // ici je veux revenir pour exécuter la ligne e = x+y ;
       // Comment faire ? 
     
     
     }

    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Par défaut
    Je ne vois pas trop l'interet mais rien ne t'empeche de faire des try catch à chaque ligne

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 118
    Par défaut
    Citation Envoyé par GSXRider Voir le message
    Je ne vois pas trop l'interet mais rien ne t'empeche de faire des try catch à chaque ligne
    ça alors! et s'il s'agit de 72 000 lignes de code ? qu'est ce qu'on fait ? 72 000 try catch ?

  4. #4
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Par défaut
    Niveau perf ça serait intéressant de tester mais j'ai des doutes pour 72 000 try catch...

    Après si tu as besoin de vérifier qu'il n'y est aucune exception à chaque ligne de code c'est qu'il y a peut être un problème de conception non ?.. Pour moi c'est comme si dans une interface utilisateur tu controles tout à chaque KeyDown voir même MouseMove..

    Après je te dis ça mais je ne connais pas ton contexte d'utilisation

    Le débugger est bien capable de le faire donc ça doit être possible mais je penses que si tu arrives à le faire tu vas avoir des pbs de perfs!

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Je vois pas trop l'intérêt ... en plus sur une division par 0.

    C'est plus rapide d'écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    z = y == 0 ? 1 : x / y;
    e = x + y;
    Plus généralement, un bloc try / catch doit être utilisé uniquement pour du code où l'exception peut survenir de façon exceptionnelle (non prévisible) et où l'exécution n'est plus possible ensuite. Si l'erreur est prévisible, alors il faut la vérifier à l'aide de condition, corriger puis continuer l'exécution. Il y a clairement un problème de conception ou d'incompréhension lié à l'utilisation des exceptions.

  6. #6
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Par défaut
    Bonjour,
    très rapidement, je vous signale l'existance du finally qui exécute du code après le try ou le catch...

    Mais tout dépend du code qu'il doit contenir, en général, c'est plutôt du code de libération de ressources qui se trouve dans le finally...

  7. #7
    Membre émérite
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Par défaut
    Un bloc catch étant un gestionnaire d'exception, il permet de pouvoir corriger une erreur survenue dans le bloc try. C'est donc une stratégie parmi d'autres (if(y==0) z=1; en est une autre).
    Effectivement si on choisit cette stratégie, s'il y a 72000 problèmes possibles il faudrait mettre 72000 try/catch. Le grand avantage de try/catch c'est de pouvoir récupérer plus facilement les erreurs et de les hiérachiser. Le code appelant au dessus peut aussi "catcher" les exceptions et donner une nouvelle chance supplémentaire de contre-mesure.

  8. #8
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Citation Envoyé par chrisdot Voir le message
    il permet de pouvoir corriger une erreur survenue dans le bloc try
    Si on peut corriger l'erreur, alors c'est qu'on pouvait la prédire. Et dès lors, l'utilisation d'un try ... catch est inutile.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 118
    Par défaut
    Bonjour,

    La division par zéro et les 72 000 lignes de code sont juste des exemples!!
    Mon code est très très loin de ces exemples!!

    Avant d'ouvrir cette discussion, j'ai pensé à l'idée d'utiliser un try catch pour chaque ligne ! et elle me paraît "déraisonnable " ! Puisqu'à chaque nouvelle ligne , on doit lui ajouter un try catch !

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Par défaut
    Ne pourrais tu pas extraire dans une fonction le code que tu souhaites exécuter même en cas d'exception, puis l'appeler dans ton finally ? Sinon, il faudrait que tu en dises un peu plus sur le vrai contexte de ton appli.

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

Discussions similaires

  1. Revenir en arrière après avoir "Publier" une application web
    Par Moana689 dans le forum Visual Studio
    Réponses: 0
    Dernier message: 18/06/2013, 04h55
  2. Le chemin est exacte mais une exeption FileNotFoundException est générée
    Par NeedToHelp dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 31/05/2013, 16h11
  3. Revenir en arrière après un MsgBox
    Par drake56 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 03/06/2009, 15h15
  4. ctrl-z apres une macro c'est possible ?
    Par gronaze dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/12/2008, 18h03
  5. Revenir en arrière après des update
    Par charles_mourot dans le forum Oracle
    Réponses: 10
    Dernier message: 02/10/2006, 10h01

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