Compartilhar via


Try... Catch... Finally demonstrativo (Visual Basic)

Fornece uma maneira de lidar com alguns ou todos os erros possíveis que podem ocorrer em um determinado bloco de código, enquanto ainda executa código.

Try
    [ tryStatements ]
    [ Exit Try ]
[ Catch [ exception [ As type ] ] [ When expression ]
    [ catchStatements ]
    [ Exit Try ] ]
[ Catch ... ]
[ Finally
    [ finallyStatements ] ]
End Try

Partes

  • tryStatements
    Opcional.(s) demonstrativo onde pode ocorrer um erro.Pode ser uma demonstrativo composta.

  • Catch
    Opcional.Vários Catch blocos de permissão. Se ocorrer uma exceção ao processar o Try bloquear, cada um Catch demonstrativo é examinada na ordem textual para determinar se ele lida com a exceção, com exception que representa a exceção foi acionada.

  • exception
    Opcional.Qualquer nome de variável.O valor inicial de exception é o valor de erro gerado. Usado com Catch Para especificar o erro detectada. Se omitido, a Catch demonstrativo detecta qualquer exceção.

  • type
    Opcional.Especifica o tipo de filtro de classe.Se o valor de exception é do tipo especificado por type ou de um tipo derivado, o identificador se torna limite para o objeto de exceção.

  • When
    Opcional.A Catch demonstrativo com um When cláusula captura exceções somente quando expression é avaliada como True. A When cláusula é aplicada somente depois de verificar o tipo de exceção, e expression Consulte o identificador que representa a exceção.

  • expression
    Opcional.Deve ser implicitamente conversível em Boolean. Qualquer expressão que descreva um filtro genérico.Normalmente usado para filtrar por número do erro.Usado com When palavra-chave para especificar as circunstâncias sob as quais o erro é detectado.

  • catchStatements
    Opcional.Comando para manipular erros que ocorrem no associado (s)Try bloco. Pode ser uma demonstrativo composta.

  • Exit Try
    Opcional.Palavra-chave que quebra a Try...Catch...Finally estrutura. A execução reinicia com o código imediatamente após o End Try demonstrativo. The Finally demonstrativo ainda será executada. Não permitidos em Finally blocos.

  • Finally
    Opcional.A Finally bloco sempre será executado quando sai de execução de qualquer parte dos Try demonstrativo.

  • finallyStatements
    Opcional.Comando (s) que é executadas após a ocorrência de todos os outros erro ao processar.

  • End Try
    Encerra o Try...Catch...Finally estrutura.

Comentários

Variáveis locais de um Try bloco não estão disponível em um Catch Bloquear porque eles são blocos separados. Se você desejar usar uma variável em mais de um bloco, declarar a variável fora o Try...Catch...Finally estrutura.

The Try bloco contém código onde pode ocorrer um erro, e o Catch bloco contém código para manipular qualquer erro que ocorre. Se ocorrer um erro no Try Bloco de controle de programa é passado para o apropriado Catch demonstrativo para descarte. The exception argumento é uma instância do Exception uma classe que deriva do ou o Exception classe. The Exception instância da classe corresponde ao erro que ocorreu no Try bloco. A instância contém informações sobre o erro.Isso inclui, entre outras coisas, seu número e a mensagem.

If a Catch demonstrativo não especifica um exception argumento, ele detecta qualquer tipo de exceção de aplicativo ou sistema. Você deve sempre usar esta variação sistema autônomo a última Catch Bloquear na Try...Catch...Finally estrutura, após a captura de todas sistema autônomo exceções específicas que você prevê. Fluxo de controle nunca pode alcançar um Catch bloco que segue um Catch sem um exception argumento.

Em situações de confiança parcial, sistema autônomo um aplicativo hospedado em um compartilhamento de rede, Try...Catch...Finally não capturar exceções de segurança que ocorrem antes que o método que contém a telefonar é invocado. O exemplo a seguir, quando você colocá-lo em um compartilhamento de servidor e executar a partir daí, produz o erro "sistema.segurança.SecurityException: Falha de solicitação." Para obter mais informações sobre exceções de segurança, consulte o SecurityException classe.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
    Try
        Process.Start("https://www.microsoft.com")
    Catch ex As Exception
        MsgBox("Can't load Web page" & vbCrLf & ex.Message)
    End Try
End Sub

Em tal uma situação de confiança parcial, você deve colocar o Process.Start demonstrativo em uma separada Sub. A telefonar inicial para o Sub falhará. Isso permite que Try...Catch para capturar antes de Sub que contém Process.Start é iniciado e produziu a exceção de segurança.

Observação:

Se um Try demonstrativo não contém pelo menos um Catch bloco, ele deve conter um Finally bloco.

Exemplo

O exemplo simplificado a seguir ilustra a estrutura do Try...Catch...Finally demonstrativo.

Public Sub TryExample()
    Dim x As Integer = 5   ' Declare variables.
    Dim y As Integer = 0
    Try                    ' Set up structured error handling.
        x = x \ y          ' Cause a "Divide by Zero" error.
    Catch ex As Exception When y = 0        ' Catch the error.
        Beep()
        MsgBox("You tried to divide by 0.") ' Show an explanatory message.
    Finally
        Beep()             ' This line is executed no matter what.
    End Try
End Sub

Consulte também

Referência

Instrução EndMétodo My.Application.Exit

Erro de objeto (Visual Basic)

Declaração Saída (Visual Basic)

No erro demonstrativo (Visual Basic)

Exception

Instrução GoTo