GoTo-Anweisung
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: Label-Anweisungen (Visual Basic).
Tipp
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)