GoTo-instructie
Vertakkingen voorwaardelijke naar een opgegeven regel in een procedure.
Syntaxis
GoTo line
Onderdeel
line
Vereist. Een lijnlabel.
Opmerkingen
De GoTo
instructie kan alleen vertakken naar regels in de procedure waarin deze wordt weergegeven. De regel moet een lijnlabel hebben waarnaar GoTo
kan verwijzen. Zie Instructies voor meer informatie: Labelinstructies.
Notitie
GoTo
instructies kunnen code moeilijk te lezen en te onderhouden maken. Gebruik waar mogelijk een besturingsstructuur. Zie Controlestroom voor meer informatie.
U kunt een GoTo
instructie niet gebruiken om van buiten een For
...Next
, For Each
..., SyncLock
...Next
, Try
...Catch
End SyncLock
...Finally
, With
...End With
, of Using
...End Using
constructie naar een etiket binnen.
Vertakkingen en bouw proberen
Binnen een Try
...Catch
...Finally
constructie, de volgende regels zijn van toepassing op vertakking met de GoTo
instructie.
Blokkeren of regio | Vertakking van buiten | Vertakking van binnenuit |
---|---|---|
Try -blok |
Alleen van een Catch blok van dezelfde constructie 1 |
Alleen naar buiten de hele constructie |
Catch -blok |
Nooit toegestaan | Alleen aan buiten de hele constructie, of aan het Try blok van dezelfde constructie 1 |
Finally -blok |
Nooit toegestaan | Nooit toegestaan |
1 Als één Try
...Catch
...Finally
constructie is genest binnen een ander blok, een Catch
blok kan op zijn eigen nestniveau in het Try
blok vertakken, maar niet in een ander Try
blok. Een geneste Try
...Catch
...Finally
de constructie moet volledig zijn opgenomen in een Try
of Catch
blok van de constructie waarin deze genest is.
In de volgende afbeelding ziet u de ene Try
constructie die in een andere is genest. Verschillende takken tussen de blokken van de twee constructies worden aangegeven als geldig of ongeldig.
Opmerking
In het volgende voorbeeld wordt de GoTo
instructie gebruikt om te vertakken naar regellabels in een procedure.
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