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

VB.NET Discussion :

Ne pas répéter Try Catch [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 154
    Par défaut Ne pas répéter Try Catch
    Bonjour à tous,

    J'ai besoin d'une petite astuce pour éviter de répéter plusieurs fois des Try Catch, voici un bout de code :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    If condition1 Then
                            If condition2  Then
                                str = currentLine.Split(New Char() {"|"c})
                                maVariable1.Add(countDictionary, str(1).Replace(" ", ""))
     
                                Try
                                    maVariable1.Add(countDictionary, Double.Parse(str(2).Replace(" ", ""), ciClone))
                                Catch ex As Exception
                                    maVariable1.Add(countDictionary, Nothing)
                                End Try
     
                                Try
                                    maVariable2.Add(countDictionary, Double.Parse(str(3).Replace(" ", ""), ciClone))
                                Catch ex As Exception
                                    maVariable2.Add(countDictionary, Nothing)
                                End Try
     
                                Try
                                    maVariable3.Add(countDictionary, Double.Parse(str(4).Replace(" ", ""), ciClone))
                                Catch ex As Exception
                                    maVariable3.Add(countDictionary, Nothing)
                                End Try
     
                                countDictionary += 1
                                Continue While
                            End If                      
    End If
    Ce qui se passe c'est que je veux relever une valeur sauf qu'elle peut être absente et dans ce cas le Parse ne fonctionne pas.
    Du coup j'utilisr le try catch sauf que je vais devoir le répéter beaucoup de fois

    Quelqu'un a une idée ?

    Merci,

    Jah

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    Il y a une méthode tryparse qui retourne un booléen qui indique si la conversion a réussi.
    TryParse

  3. #3
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 154
    Par défaut
    @youtpout978 : J'ai pensé au TryParse, sauf que ça m'obligerai à faire des If Else ?

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,

    Utilise une procédure ou une fonction qui remplace ton bloc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                                Try
                                    maVariable1.Add(countDictionary, Double.Parse(str(2).Replace(" ", ""), ciClone))
                                Catch ex As Exception
                                    maVariable1.Add(countDictionary, Nothing)
                                End Try
    Comme cela le try catch ne sera que dans ta procédure ou fonction.

    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 81
    Par défaut
    Il existe également la fonction Trim pour supprimer les espaces au lieu de faire des Replace(" ","").

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Exemple de procedure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Sub Ajoute(ByRef maVariable As TonType, ByVal countdictionary As Integer, ByVal Str As String, ByVal ns As System.Globalization.NumberStyles)
            Try
                maVariable.Add(countdictionary, Double.Parse(Str.Replace(" ", ""), ns))
            Catch ex As Exception
                maVariable.Add(countdictionary, Nothing)
            End Try
        End Sub
    Utilisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                        If condition1 Then
                            If condition2  Then
                                str = currentLine.Split(New Char() {"|"c})
                                maVariable1.Add(countDictionary, str(1).Replace(" ", ""))
     
                                Ajoute(maVariable1,countDictionary,str(2),ciclone)
                                Ajoute(maVariable2,countDictionary,str(3),ciclone)
        ' ...
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

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

Discussions similaires

  1. [Drupal] pas de try catch dans les classes
    Par mapmip dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 25/11/2014, 16h30
  2. Réponses: 6
    Dernier message: 27/10/2010, 14h06
  3. [SQL2005] TRY-CATCH ne passe pas le contrôle au CATCH ?
    Par elsuket dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 22/10/2008, 14h06
  4. Pourquoi un try catch ne marche-t-il pas ?!?
    Par noussibeau dans le forum VB.NET
    Réponses: 13
    Dernier message: 09/11/2007, 10h14
  5. Builder n'accepte pas try/catch/__finally
    Par Rodrigue dans le forum C++Builder
    Réponses: 3
    Dernier message: 18/04/2005, 13h15

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