Demonstra Passo a passo: Tratamento Estruturado Exceção

Enquanto você ainda pode empregar a declaração On Error para tratar exceções em seu código para fornecer tratamento de exceção não estruturada, o Visual Basic 2005 também suporta tratamento de exceção estruturada, que você pode usar para criar e manter programas com tratamento de erros mais abrangente.No tratamento de exceção estruturada, blocos de código testam circunstâncias específicas e reagem adequadamente.

Esta explicação passo a passo demonstra como adicionar tratamento de exceção estruturada para um programa.Especificamente, mostra como usar a declaração Try...Catch...Finally para manipular exceções, e como executar filtragem de erro em blocos Catch.

Observação:

Não é possível combinar tratamento de exceção estruturada e não estruturada dentro de um único procedimento.

Observação:

As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritas na Ajuda, dependendo das configurações ativas ou configurações de edição.Para alterar as configurações, escolher Importar e exportar configurações on the Ferramentas menu.Para obter mais informações, consulte Configurações do Visual Studio.

Criando o aplicativo

O seguinte aplicativo é um formulário de pedido de cliente para uma empresa que vende um urso de brinquedo.A interface do usuário consiste nos seguintes controles:

  • Um TextBox para o nome do cliente.

  • Dois controles ComboBox para selecionar a cor e tamanho do lembre.

  • Uma Button ordem.

  • Três rótulos que transmitam a finalidade de cada controle para o usuário.

  • Quando o usuário inserir as informações solicitadas e clicar no botão Order, o aplicativo exibe um resumo do pedido.

Para criar o aplicativo

  1. No menu File, selecione New Project.A caixa de diálogo New Project será exibida.

  2. Na janela Project Types, selecione Visual Basic and Windows se não estiver selecionado, selecione Windows Application na janela Templates.

  3. Na janela Properties em Name, insira TeddyBearProject e clique em OK.O projeto é adicionado ao Solution Explorer, e o Windows Forms Designer é aberto.

  4. Adicione os controles para o formulário, e defina suas propriedades conforme especificado.

    Controle

    Propriedades

    Valores das Propriedade

    Rótulo

    Nome

    Texto

    customerLabel

    Bear Order Form

    TextBox

    Nome

    Texto

    customerName

    Customer Name

    Rótulo

    Nome

    Texto

    bearColorLabel

    Available Colors

    ComboBox

    Nome

    Itens

    Texto

    bearColor

    Black, Brown, Spotted

    Bear Color

    Rótulo

    Nome

    Texto

    bearSizeLabel

    Available Sizes

    ComboBox

    Nome

    Itens

    Texto

    bearSize

    Small, Normal, Large

    Size (Tamanho)

    Button

    Nome

    Texto

    order

    Order

Adicionando Funcionalidade

Agora que os controles e suas propriedades estão adicionados e definidos, é necessário colocar código por trás deles para fazê-los funcionar.O código a seguir manipula o evento Click para o botão do pedido e exibe uma mensagem para o cliente.

Para adicionar funcionalidade ao formulário e a seus controles

  • Adicione o seguinte código para o evento do botão Click.

    Dim bearOrder As String
    bearOrder = _
      String.Format("You have ordered a {0} {1} bear.", _
      bearSize.SelectedItem, bearColor.SelectedItem)
    MsgBox(bearOrder)
    

O aplicativo agora está pronto para que você possa adicionar o código de tratamento de exceção estruturada.

Adicionando um bloco Try...Catch

Para garantir que o cliente tenha especificado uma cor para o urso, adicione uma instrução Try...Catch.Lembre-se do seguinte:

  • Uma cláusula Catch sem nenhum identificador captura todas as exceções.

  • Uma cláusula Catch com uma cláusula When captura exceções somente quando a expressão for avaliada como True; o tipo de expressão deve ser implicitamente convertível para Boolean.

Para adicionar um bloco Try...CATCH simples

  • Adicione o seguinte código ao evento Click do botão de pedido após a seção que testa os valores de tamanho e cor, isto é, após String.Format ("You have ordered a {0} {1} bear.", BearSize.SelectedItem, BearColor.SelectedItem).Este código lança uma exceção se ele encontrar um valor de cor inválido.Ao adicionar instruções Try, saiba que o editor fornece End Try automaticamente no final da declaração.

    Try
        If ((bearColor.SelectedIndex < 0) Or _
              (bearColor.SelectedIndex > 2)) Then
            Throw New System.Exception()
        End If
        ' The Catch statement handles errors caused by a lack of bear color.
    Catch ex As Exception When bearColor.SelectedIndex < 0
        bearOrder = String.Format("You must select a bear color!")
    Finally
        Beep() ' Beep at the end.
    End Try
    

Para adicionar uma cláusula Catch adicional

  1. Adicione um novo item, "Purple", para o controle do ComboBox bearColor.

  2. Adicione o seguinte código depois da linha de código bearOrder = String.Format("You must select a bear color!").

    Catch ex As Exception When bearColor.SelectedIndex = 3
        bearOrder = String.Format("There are no bears of that color.")
    

Você pode adicionar quantas cláusulas Catch forem necessárias para seu código.

Testando

Agora você pode testar o aplicativo para certificar-se de que ele funciona corretamente.

Para compilar e executar o aplicativo

  1. No menu Build, selecione Build TeddyBearProject.

  2. Pressione F5 para executar o aplicativo.O formulário principal aparece.

Para testar o aplicativo

  1. Digite um nome na caixa de texto Customer Name, e selecione a cor e o tamanho para o urso a partir das caixas de combinação Available Colors e Available Sizes.

  2. Clique no botão Order.Se você selecionou Black, Brown, ou Spotted como a cor na etapa anterior, uma mensagem aparecerá indicando o tamanho e a cor do urso que você pediu.

    Se você não especificar uma cor, será exibida uma mensagem solicitando que você faça isso.

  3. Clique em OK para cancelar a mensagem.

  4. Na caixa de texto Available Colors, selecione Purple, e clique no botão Order.Uma mensagem aparece dizendo que ursos roxos não estão disponíveis.

Consulte também

Conceitos

Visão Geral sobre a Manipulação Estruturada de Exceções para o Visual Basic

Referência

Em instrução de erro (Visual Basic)

Try... Catch... Finally instrução (Visual Basic)

Declaração Throw (Visual Basic)

Outros recursos

Tarefas de Tratamento de Exceção