Partilhar via


Como: Manter o controle quando ocorre um erro

Você pode usar a construção Try... Catch... Finally demonstrativo (Visual Basic)para manipulação estruturada de exceções.Isso permite que você execute um bloco de instruções particular se uma exceção especificada ocorrer enquanto seu código estiver sendo executado.Quando isso acontece, diz-se que o código lançou a exceção e você a capturou com a instrução Catch apropriada.

Para executar um conjunto de instruções se seu código causa uma exceção

  • Use a construção Try... Catch... Finally para englobar o código que pode causar uma exceção.Em seguida, especifique o código que será executado se uma exceção ocorrer e, como opção, forneça um conjunto de instruções para ser executado antes que controle deixe a construção Try... Catch... Finally.

    O exemplo a seguir tenta calcular a data e hora exatamente 100 anos após o valor fornecido no Object variável givenDate.

    Dim givenDate As Object
    Dim nextCentury As Date
    Try
        nextCentury = Microsoft.VisualBasic.DateAdd("yyyy", 100, givenDate)
        Catch thisExcep As System.ArgumentOutOfRangeException
        ' The resulting date/time is later than December 31, 9999.
        Catch thisExcep As System.ArgumentException
        ' At least one argument has an invalid value.
        Catch thisExcep As System.InvalidCastException
        ' The value in givenDate cannot be interpreted as a date/time.
        Catch
        ' An unforeseen exception has occurred.
        Finally
        ' This block is always run before leaving the Try structure.
    End Try
    

    Os três primeiros blocos Catch manipulam as exceções que você pode esperar de Função DateAdd (Visual Basic).Você pode lidar com qualquer exceção inesperada no último bloco Catch.

    Não importa o que aconteça, o bloco Finally é sempre o último código a ser executado antes de sair da construção Try... Catch... Finally.Se você cria ou abre recursos, como conexões de banco de dados ou objetos em um blocoTry ou Catch, você pode usar o bloco Finally para fechá-los e descartá-los, se apropriado.

    Se a variável de exceção thisExcep não for exibida em uma instrução de declaração, como Dim, a instrução Catch com a cláusula As serve como uma declaração.

Consulte também

Tarefas

Como: transferência controle fora de uma estrutura de controle

Como: Executar instruções conforme em um ou mais condições

Como: Testar vários valores de uma expressão

Conceitos

Estruturas de Decisão

Estruturas de loop

Outras estruturas de controle

Estruturas de controle aninhadas

Outros recursos

Fluxo de controle no Visual Basic