Оператор GoTo
Ветви безусловно к указанной строке в процедуре.
Синтаксис
GoTo line
Часть
line
Обязательный. Любая метка строки.
Замечания
Оператор GoTo
может ветвиться только к строкам в процедуре, в которой она отображается. Строка должна иметь метку строки, на которую GoTo
можно ссылаться. Дополнительные сведения см. в разделе "Практическое руководство. Инструкции меток".
Примечание.
GoTo
операторы могут затруднить чтение и обслуживание кода. По возможности используйте вместо этого структуру управления. Дополнительные сведения см. в разделе Поток управления.
Оператор нельзя использовать GoTo
для ветвления вне For
...Next
, ...Next
, For Each
..., ...End SyncLock
Catch
SyncLock
Try
..., With
...End With
Finally
, или Using
...End Using
строительство в метку внутри.
Ветвление и попробовать конструкции
Try
Внутри ...Catch
...Finally
построение, следующие правила применяются к ветвлениям с помощью инструкцииGoTo
.
Блокировка или регион | Ветвление извне | Ветвление изнутри |
---|---|---|
Блок Try |
Только из Catch блока того же строительства 1 |
Только вне всей конструкции |
Блок Catch |
Никогда не разрешено | Только за пределами всей конструкции, или к Try блоку одного и того же строительства 1 |
Блок Finally |
Никогда не разрешено | Никогда не разрешено |
1 Если один Try
...Catch
...Finally
конструкция вложена в другой блок, Catch
блок может ветвь в Try
блок на своем уровне вложения, но не в любой другой Try
блок. Вложенный Try
...Catch
...Finally
конструкция должна быть полностью размещена в Try
Catch
блоке конструкции, в которой она вложена.
На следующем рисунке показана одна Try
конструкция, вложенная в другую. Различные ветви между блоками двух конструкций указываются как допустимые или недопустимые.
Пример
В следующем примере оператор используется для GoTo
ветвления к строкам меток в процедуре.
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