Demonstra Passo a passo: (Visual Basic) de manipulação de exceção estruturada
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 |
---|
Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. 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
No menu File, selecione New Project. A caixa de diálogo New Project será exibida.
Na janela Project Types, selecione Visual Basic and Windows se não estiver selecionado, selecione Windows Application na janela Templates.
Na janela Properties em Name, insira TeddyBearProject e clique em OK. O projeto é adicionado ao Solution Explorer, e o Windows Forms Designer é aberto.
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
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 OrElse 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
Adicione um novo item, "Purple", para o controle do ComboBox bearColor.
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
No menu Build, selecione Build TeddyBearProject.
Pressione F5 para executar o aplicativo. O formulário principal aparece.
Para testar o aplicativo
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.
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.
Clique em OK para cancelar a mensagem.
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
Referência
Instrução On Error (Visual Basic)
Instrução Try...Catch...Finally (Visual Basic)
Declaração Throw (Visual Basic)
Conceitos
Visão Geral sobre a Manipulação Estruturada de Exceções para o Visual Basic