VB.Net - Boucle For - Try Catch [Résolu]

jothecracker 26 Messages postés jeudi 26 décembre 2002Date d'inscription 9 mars 2011 Dernière intervention - 27 mars 2009 à 18:07 - Dernière réponse : jothecracker 26 Messages postés jeudi 26 décembre 2002Date d'inscription 9 mars 2011 Dernière intervention
- 28 mars 2009 à 02:18
Bonjour,

Je cherche comment faire pour passer au 'Next' dans une boucle For en cas d'erreur.

For Each Ligne dans FichierCVS

    Try
        Traitement (Ligne)
    Catch
       'Comment Aller a Next ?
    End Try

'Code ne pouvant etre executer en cas d'erreur du traitement
    Excecution Code

Next

Comment faire pou executer le 'Next' suivant ? Exit For quitte la boucle sans executer la ligne suivante, ce qui ne m'arrange pas vraiement.

Je m'en remet a vous :)

Cordialement,

Syl
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 27 mars 2009 à 18:37
3
Merci
Un GOTO quelle horreur. VADE RETRO. Et en plus tu déclare une variable du même nom que l'étiquette pour ajouter à la confusion.
RAPPEL : GOTO ne devrait jamais être utiliser dans un langage évènementiel, c'est une instruction qui date des ancetres du Basic et qui ne devrait plus du tout exister dans VB

[auteur/JOTHECRACKER/25133.aspx jothecracker] > Utilise l'instruction Continue









---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_casy
Meilleure réponse
jothecracker 26 Messages postés jeudi 26 décembre 2002Date d'inscription 9 mars 2011 Dernière intervention - 28 mars 2009 à 02:18
3
Merci
Merci a tous pour vos réponses,

Je vois que la question a pose polémique :)

Je suis partis sur la solution de Casy, j'ajouterais ceci :

"Mot clé largement utilisé dans différents
langages comme le C++, ou le C#, le continue permet de passer à
l’itération suivante d’une boucle sans exécuter le code “restant” dans
cette boucle, c’est une rupture de séquence. Prenons un exemple simple
mais concret:
For i As Integer = 0 To 10

If i = 3 Then Continue For               ‘Si i=3, alors pas de message dans la console

Console.WriteLine(i.ToString)

Next

Ce code présente donc le “Continue For”, comme il existe le “Continue While” et le “Continue Do”."

Source : net-linq-wpf.nouvelle-bulle.com

Merci jothecracker 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de jothecracker
Duke49 553 Messages postés jeudi 12 octobre 2006Date d'inscription 6 juin 2015 Dernière intervention - 27 mars 2009 à 18:15
0
Merci
Le bon vieux GOTO

Dim ExitTry as Variant

For Each Ligne dans FichierCVS

    Try
        Traitement (Ligne)
    Catch
       Goto ExitTry
    End Try

ExitTry:
    'Code ne pouvant etre executer en cas d'erreur du traitement
    Excecution Code

Next
Commenter la réponse de Duke49
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 27 mars 2009 à 18:45
0
Merci
Salut

Si ton catch ne fait rien
juste la capture de l'erreur et pas de juste de l'erreur throw new Exception


Excecution Code sera executé.

Bon coding
Commenter la réponse de nhervagault
Duke49 553 Messages postés jeudi 12 octobre 2006Date d'inscription 6 juin 2015 Dernière intervention - 27 mars 2009 à 21:48
0
Merci
[../auteur/CASY/333139.aspx casy]

c'est vrai dans une certaine mesure, c'est maintenant une question de mentalité.
Comme le fait de passer d'un windows a un autre, on entend et
cette personne restera fidèle à son vieux windows avec ce même discourt alors qu'il
suffit d'attendre une version stable ou un service pack.
Tu ne peux pas avancer ce que tu dis sur le Goto sans savoir ce que traite le Try.
Debug en pas à pas cette procédure avec Odbg et tu verras; sa rox le goto !

De toute façon je préfère ASM à XAML et VB6 au .NET
Commenter la réponse de Duke49
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 27 mars 2009 à 21:59
0
Merci
Y'a u truc que je ne pige pas.
Pourquoi ne pas mettre le traitement dans le try ?

For Each Ligne dans FichierCVS
    Try
        Traitement (Ligne)

         'Code ne pouvant etre executer en cas d'erreur du traitement
          Excecution Code
    Catch

    End Try
Next

__________
  Kenji
Commenter la réponse de Charles Racaud
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 27 mars 2009 à 22:00
0
Merci
Je répète, GOTO (il en va de même pour Gosub) ne devrait jamais être utiliser dans un langage évènementiel. Pour la gamme VB ça correspond, si mes souvenirs sont bon à la version VB4 pour la programmation sous Windows 3.1, ça remonte à près de 18 ans maintenant (1993-94).

Goto n'était acceptable en VB6 (parce qu'on n'avait pas le choix) que dans les gestionnaires d'erreur, les On Error Goto.

En .Net, si les On Error Goto existent toujours les Try Ctach sont bien plus performants et devraient être systématiquement utilisés.
L'instruction Goto n'a plus lieu d'être et je maintiens qu'elle devrait être purement et simplemnt supprimer du langage.
En plus de 10 ans de programmation professionnelle, je n'ai jamais eu besoin d'utiliser un Goto en dehors du On Error Goto (en excluant évidement les HPBasic, Basica, QBasic et autre QuickBasic)

De plus [../auteur/DUKE49/880809.aspx Duke49] dans le code que tu donne et donc l'utilisation du Goto, tu fais tout le contraire de ce qui est demandé dans la question

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Commenter la réponse de cs_casy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.