Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Ramifica-se incondicionalmente para uma linha especificada em um procedimento.
Sintaxe
GoTo line
Parte
line
Obrigatório Qualquer rótulo de linha.
Observações
A GoTo instrução pode ramificar-se apenas para linhas no procedimento em que aparece. A linha deve ter um rótulo de linha que GoTo possa fazer referência. Para obter mais informações, consulte Como: Instruções de rótulo.
Observação
GoTo instruções podem tornar o código difícil de ler e manter. Sempre que possível, use uma estrutura de controle. Para obter mais informações, consulte Fluxo de controle.
Você não pode usar uma GoTo declaração para ramificar de fora de um For...Next, For Each...Next, SyncLock..., Try...End SyncLockCatch...Finally, With...End With, ou Using...End Using construção para uma etiqueta no interior.
Ramificações e Tentativas de Construções
Dentro de um Try...Catch...Finally construção, as seguintes regras se aplicam à ramificação com a GoTo declaração.
| Bloco ou região | Ramificação a partir do exterior | Ramificação a partir de dentro |
|---|---|---|
Try bloco |
Apenas de um Catch bloco da mesma construção 1 |
Só para fora de toda a construção |
Catch bloco |
Nunca permitido | Apenas para fora de toda a construção, ou para o Try bloco da mesma construção 1 |
Finally bloco |
Nunca permitido | Nunca permitido |
1 Se um Try...Catch...Finally A construção é aninhada dentro de outro, um Catch bloco pode se ramificar no Try bloco em seu próprio nível de nidificação, mas não em qualquer outro Try bloco. Um aninhado Try...Catch...Finally A construção deve estar completamente contida num Try ou Catch bloco da construção em que está aninhada.
A ilustração a seguir mostra uma Try construção aninhada dentro de outra. Vários ramos entre os blocos das duas construções são indicados como válidos ou inválidos.
Exemplo
O exemplo a seguir usa a GoTo instrução para ramificar para alinhar rótulos em um procedimento.
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