Share via


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...CatchEnd 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.

Graphic diagram of branching in Try constructions

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

Zie ook