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