Freigeben über


GoTo-Anweisung

Aktualisiert: November 2007

Verzweigt unabhängig von einer Bedingung auf eine angegebene Zeile innerhalb einer Prozedur.

GoTo line

Bestandteil

  • line
    Erforderlich. Eine beliebige Zeilenmarke.

Hinweise

Die GoTo-Anweisung kann nur auf Zeilen der Prozedur verzweigen, in der sie verwendet wird. Die Zeile muss über eine Zeilenmarke verfügen, auf die GoTo verweisen kann. Weitere Informationen finden Sie unter Gewusst wie: Bezeichnen von Anweisungen.

Hinweis:

Mit GoTo-Anweisungen wird der Code schwer verständlich, und die Pflege des Codes wird ebenfalls erschwert. Verwenden Sie stattdessen nach Möglichkeit eine Steuerungsstruktur. Weitere Informationen finden Sie unter Ablaufsteuerung in Visual Basic.

Es ist nicht möglich, mit einer GoTo-Anweisung von außerhalb einer Konstruktion mit For...Next, For Each...Next, SyncLock...End SyncLock, Try...Catch...Finally, With...End With oder Using...End Using auf eine Bezeichnung in der Konstruktion zu verzweigen.

Verzweigung und Try-Konstruktionen

Innerhalb einer Try...Catch...Finally-Konstruktion gelten die folgenden Regeln für Verzweigungen mit der GoTo-Anweisung.

Block oder Bereich

Verzweigung von außen nach innen

Verzweigung von innen nach außen

Try-Block

Nur aus einem Catch-Block mit der gleichen Konstruktion 1

Nur nach außerhalb der gesamten Konstruktion

Catch-Block

Niemals zulässig

Nur nach außerhalb der gesamten Konstruktion oder zum Try-Block derselben Konstruktion 1

Finally-Block

Niemals zulässig

Niemals zulässig

1 Wenn eine Try...Catch...Finally-Konstruktion in einer anderen geschachtelt ist, kann ein Catch-Block in den Try-Block auf der eigenen Schachtelungsebene, jedoch nicht in einen anderen Try-Block verzweigen. Eine geschachtelte Try...Catch...Finally-Konstruktion muss vollständig in einem Try-Block oder einem Catch-Block der Konstruktion enthalten sein, in der sie geschachtelt ist.

Im folgenden Beispiel wird eine Try-Konstruktion veranschaulicht, die in einer anderen geschachtelt ist. Verschiedene Verzweigungen zwischen den Blocks der beiden Konstruktionen werden als gültig oder ungültig angegeben.

Gültige und ungültige Verzweigungen in Try-Konstruktionen

Beispiel

In folgendem Beispiel wird die GoTo-Anweisung verwendet, um auf Zeilensprungmarken innerhalb einer Prozedur zu verzweigen.

    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

Referenz

Do...Loop-Anweisung (Visual Basic)

For...Next-Anweisung (Visual Basic)

For Each...Next-Anweisung (Visual Basic)

If...Then...Else-Anweisung (Visual Basic)

Select...Case-Anweisung (Visual Basic)

Try...Catch...Finally-Anweisung (Visual Basic)

While...End While-Anweisung (Visual Basic)

With...End With-Anweisung (Visual Basic)