Teilen über


GoTo-Anweisung

Brancht ohne Bedingungen in eine angegebene Zeile in einer Prozedur.

Syntax

GoTo line  

Teil

line
Erforderlich. Beliebige Zeilenbezeichnung.

Bemerkungen

Die GoTo-Anweisung kann nur in Zeilen in der Prozedur branchen, in der sie vorkommt. Die Zeile muss über eine Zeilenbezeichnung verfügen, auf die GoTo verweisen kann. Weitere Informationen finden Sie unter Vorgehensweise: Versehen von Anweisungen mit Bezeichnungen.

Hinweis

GoTo--Anweisungen können das Lesen und Verwalten von Code erschweren. Verwenden Sie nach Möglichkeit stattdessen eine Steuerungsstruktur. Weitere Informationen finden Sie unter Control Flow.

Sie können eine GoTo-Anweisung nicht verwenden, um von außerhalb eines For...Next-, For Each...Next-, SyncLock...End SyncLock-, Try...Catch...Finally-, With...End With- oder Using...End Using-Konstrukts in eine Bezeichnung darin branchen.

Branchen und Try-Konstrukte

Innerhalb eines Try...Catch...Finally-Konstrukts gelten für das Branchen mit der GoTo-Anweisung die folgenden Regeln.

Block oder Region Branchen nach innen von außen Branchen nach außen von innen
Try-Block Nur aus einem Catch-Block des gleichen Konstrukts 1 Nur außerhalb des gesamten Konstruks
Catch-Block Nie zulässig Nur außerhalb der gesamten Konstrukts oder zum Try-Block des gleichen Konstrukts 1
Finally-Block Nie zulässig Nie zulässig

1 Wenn ein Try...Catch...Finally-Konstrukt in einem anderen geschachtelt ist, kann ein Catch-Block in seine eigene Schachtelungsebene in den Try-Block branchen, aber nicht in einen anderen Try-Block. Ein geschachteltes Try...Catch...Finally-Konstrukt muss vollständig in einem Try- oder Catch-Block des Konstrukts enthalten sein, in dem es geschachtelt ist.

Die folgende Abbildung zeigt ein Try-Konstrukt, das in einem anderen geschachtelt ist. Verschiedene Branches zwischen den Blöcken der beiden Konstrukte werden als gültig oder ungültig gekennzeichnet.

Graphic diagram of branching in Try constructions

Beispiel

Im folgenden Beispiel wird die GoTo-Anweisung zum Branchen zu Zeilenbezeichnungen in einer Prozedur verwendet.

    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

Siehe auch