Comment gerer ces exceptions le plus "proprement" possible
Bonjour,
je rencontre un souci avec ce bout de code :
Code:
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:
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