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 :

Comment gerer ces exceptions le plus "proprement" possible


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Par défaut Comment gerer ces exceptions le plus "proprement" possible
    Bonjour,
    je rencontre un souci avec ce 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
    Private Sub download()
            Dim user As String = "monlogin"
            Dim password As String = "monpassword"
            Dim wc As New WebClient()
            wc.Credentials = New NetworkCredential(user, password)
            Dim baseUri = "ftp://ftp.cluster006.ovh.net/www/jdownloads/Patient/new_treatment/" 'URI et chemin ou je veux aller dans le ftp
            Dim newDirectory As String = "../done_treatment/"
            Dim fileNames = GetDirectoryListing(baseUri, wc.Credentials)
            Dim localpath As String = "\\nas\Calculateur\DATA\encours\" 'chemin ou je veux dl les fichiers
            For Each filename In fileNames
                Dim newPath As String = newDirectory + "/" + filename
                If Not filename.EndsWith(".xls", StringComparison.CurrentCultureIgnoreCase) Then 'ne tient pas compte de la casse
                    Continue For
                End If
                Dim localFileName = System.IO.Path.Combine(localpath, filename)
                Dim uri = baseUri + "/" + filename
                wc.DownloadFile(uri, localFileName)
                MoveFile(uri, newPath, wc.Credentials) ' transfere le fichier dans done_treatment apres avoir downloade
            Next
            System.Threading.Thread.Sleep(1000)
            Labelprogress.Visible = False
            OvalShapeencours.Visible = False
            Labeldone.Visible = True
            OvalShapedone.Visible = True
            Me.Enabled = True
        End Sub
    Je vois bien que des exceptions ne sont pas gérées, si par exemple le localpath ou tout simplement la baseURI sont en panne, l'appli plante.
    Vous me direz y a les try/catch pour cela.
    Oui mais je n'arrive pas a comprendre comment gérer toutes les exceptions de ce bout de code de manière simple.
    Je voudrais que
    - si apres 20 secondes, la connexion au ftp n'est pas obtenue, avoir un messagebox.show du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If MessageBox.Show(Messageaff, infoaff, MessageBoxButtons.RetryCancel, MessageBoxIcon.Warning) = DialogResult.Cancel Then
                "je passe a l'instruction suivante"
            Else
                "je retente la connexion"
            End If
    - si localpath n'est pas trouvé alors le répertoire devient par défaut "mes documents"

    Je m'emmèle les pinceaux avec mes try/catch et rien ne fonctionne comme prévu
    pourrais je avoir une petite aide pour les placer correctement siouplait ?
    Merci bien

  2. #2
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Try
     
                      ...
                      Instruction a executer
                      ...
     
                Catch ex As Exception
     
                      MsgBox("Il y a une erreur dans mon instruction..." & ex.Message)
                      ...
                      Alors je fais ceci
     
                End Try

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Par défaut
    si apres 20 secondes, la connexion au ftp n'est pas obtenue, avoir un messagebox.show du genre
    Pourquoi ne pas faire une boucle avec :
    - un timer qui serait lancé juste avant la boucle
    - une condition pour vérifier si le timer est toujours inférieur à 20 sec (si ce n'est pas le cas affichage du message + break)
    - Une vérification de la connexion
    - un Sleep de 1 seconde
    ?

    si localpath n'est pas trouvé alors le répertoire devient par défaut "mes documents"
    Tu n'est pas obligé de gérer ça avec les try/catch. Je ne connais pas du tout le VB (je suis C#) mais je vais m'essayer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim localpath As String = "\\nas\Calculateur\DATA\encours\"
    If Not Directory.Exists(localpath) Then 
        localpath = "C:\\...\\Mes Documents"
    End If
    Désolé si le code VB n'est pas correct ce n'est pas mon dada J'espère t'avoir aidé tout de même.

Discussions similaires

  1. comment gerer les exception en jsf?
    Par chercheur11 dans le forum JSF
    Réponses: 6
    Dernier message: 27/02/2009, 18h52
  2. Réponses: 1
    Dernier message: 02/06/2005, 19h23
  3. [Exception]Comment gérer les exceptions ?
    Par Gildas Huart dans le forum Général Java
    Réponses: 7
    Dernier message: 29/03/2005, 18h01

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