Comment puis-je utiliser Try et Catch pour réessayer une opération dans VB.Net?
Je voudrais lire un fichier et si j'échoue, permettre à l'utilisateur de réessayer ou de donner. Jusqu'à présent, le code ressemble à ceci:
Read_Again:
Try
my_stream.Read(buffer, 0, read_len)
Catch ex As System.IO.IOException
If MessageBox.Show("try again?") = DialogResult.Retry Then
GoTo Read_Again
Else
Application.Exit() 'just abort, doesn't matter
End If
End Try
Je n'aime pas le Goto, c'est moche. Mais je ne vois pas comment faire une boucle qui s'étend sur le try et catch.
Est-il une meilleure façon d'écrire cela?
+1 surtout pour votre ambition pour se débarrasser de l'goto. 🙂
OriginalL'auteur Eyal | 2011-06-22
Vous devez vous connecter pour publier un commentaire.
bonne prise. Fixe!
Ou vous pouvez simplement init nouvelle tentative de falsification et de modifier la boucle pour un, tandis que les tentatives de
OriginalL'auteur Bala R
J'ai pensé à une autre réponse:
Sortie est fondamentalement Goto dans le déguisement, cependant. De cette façon, je n'ai pas besoin d'une autre variable avec une grande portée, trop.
OriginalL'auteur Eyal
Je voudrais séparer les logiques dans une fonction de lecture qui renvoie true ou false selon le résultat de la lecture et de gérer les tentatives de logiques à l'extérieur de cette méthode.
Par exemple
OriginalL'auteur faester