GoTo, instruction
Crée une branche inconditionnelle vers une ligne spécifiée d'une procédure.
Syntaxe
GoTo line
Élément
line
Obligatoire. Toute étiquette de ligne.
Notes
L’instruction GoTo
ne peut se brancher qu’aux lignes de la procédure dans laquelle elle apparaît. La ligne doit avoir une étiquette de ligne à laquelle GoTo
peut faire référence. Pour plus d’informations, consultez Guide pratique pour étiqueter des instructions.
Notes
Les instructions GoTo
peuvent rendre le code difficile à lire et à gérer. Dans la mesure du possible, utilisez plutôt une structure de contrôle. Pour plus d’informations, consultez Control Flow.
Vous ne pouvez pas utiliser une instruction GoTo
pour créer une branche en dehors d’une construction For
...Next
, For Each
...Next
, SyncLock
...End SyncLock
, Try
...Catch
...Finally
, With
...End With
, ou Using
...End Using
à l’intérieur d’une étiquette.
Branchement et tentative de constructions
Dans une construction Try
...Catch
...Finally
, les règles suivantes s’appliquent à la branchement avec l’instruction GoTo
.
Bloquer ou région | Branchement à partir de l’extérieur | Branchement à partir de l’intérieur |
---|---|---|
Bloc Try |
Seulement d’un bloc Catch de la même construction 1 |
Seulement à l’extérieur de toute la construction |
Bloc Catch |
Jamais autorisé | Seulement à l’extérieur de l’ensemble de la construction, ou au bloc Try de la même construction 1 |
Bloc Finally |
Jamais autorisé | Jamais autorisé |
1 Si une construction Try
...Catch
...Finally
est imbriquée dans une autre, un bloc Catch
peut se brancher dans le bloc Try
à son propre niveau d’imbrication, mais pas dans un autre bloc Try
. Une construction Try
...Catch
...Finally
imbriquée doit être entièrement contenue dans un bloc Try
ou Catch
de la construction dans laquelle elle est imbriquée.
L’illustration suivante montre une construction Try
imbriquée dans une autre. Diverses branches parmi les blocs des deux constructions sont indiquées comme valides ou non valides.
Exemple
L’exemple suivant utilise l’instruction pour créer une branche GoTo
vers des étiquettes de ligne dans une procédure.
Sub GoToStatementDemo()
Dim number As Integer = 1
Dim sampleString As String
' Evaluate number and branch to appropriate label.
If number = 1 Then GoTo Line1 Else GoTo Line2
Line1:
sampleString = "Number equals 1"
GoTo LastLine
Line2:
' The following statement never gets executed because number = 1.
sampleString = "Number equals 2"
LastLine:
' Write "Number equals 1" in the Debug window.
Debug.WriteLine(sampleString)
End Sub