Como usar Visual Basic de manipulação de exceção estruturada.NET ou no Visual Basic 2005

Traduções de Artigos Traduções de Artigos
Artigo: 315965 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo demonstra como usar Visual Basic de manipulação de exceção estruturada.NET ou no Visual Basic 2005.

Requisitos

A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs que você precisa:
  • Visual Basic.NET ou Visual Basic 2005
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
  • Visual Basic.NET ou Visual Basic 2005
  • Microsoft Visual Studio.NET ou Microsoft 2005 Visual Studio

Manipulação de exceção estruturada

Visual Basic.NET ou Visual Basic 2005 oferece tratamento de exceção estruturada que fornece uma alternativa poderosa e mais legível para tratamento de erro "On Error Goto", que está disponível em versões anteriores do Microsoft Visual Basic. Manipulação de exceção estruturada é mais eficiente porque permite aninhar manipuladores de erro dentro de outros manipuladores de erro dentro do mesmo procedimento. Além disso, a manipulação de exceção estruturada usa uma sintaxe de bloco semelhante a se...Outra...End If instrução. Isso torna a Visual Basic.NET e Visual Basic 2005 código mais legível e fácil de manter.

Observação: Visual Basic.NET ou Visual Basic 2005 mantém a sintaxe "On Error Goto" para compatibilidade com versões anteriores. Você ainda pode usar essa sintaxe em Visual Basic.NET ou Visual Basic 2005 código. No entanto, você não é possível combinar manipulação de exceção estruturada e instruções On Error dentro do mesmo procedimento. Quando você escrever código novo, a Microsoft recomenda que você use manipulação de exceção estruturada.

A sintaxe básica de tratamento de erros estruturado é o seguinte:
Try
   'Code that may raise an error.
Catch
   'Code to handle the error.
Finally
   'Code to do any final clean up.
End Try
				
As instruções e Tente End são necessárias. As instruções Catch e Finally não são necessárias, embora você deve incluir pelo menos um em seu código. Você também pode especificar várias instruções Catch , de forma que cada bloco Catch trata um erro específico.

Capturar uma exceção

  1. Inicie Visual Studio.NET ou Visual Studio de 2005.
  2. Crie um novo projeto de aplicativo de Console em Visual Basic.NET ou no Visual Basic 2005.
  3. No procedimento Sub Main , adicione o seguinte código:
    Dim a As Integer = 0
    Dim b As Integer = 0
    Dim c As Integer = 0
    
    Try
      a = b \ c
    Catch exc As Exception
      Console.WriteLine("A run-time error occurred")
    Finally
      Console.ReadLine()
    End Try
    					
  4. No menu Debug , clique em Iniciar para executar o aplicativo. O código tentar dividir um número por zero. Esta é uma operação ilegal que causa uma divisão por zero exceção. Felizmente, o bloco Catch captura esse erro e a janela de Console exibe a seguinte mensagem de erro:
    A run-time error has occurred
    						
  5. Feche a janela do Console.

Capturar exceções vários

Esta seção demonstra como usar várias instruções Catch para manipular erros diferentes.
  1. Abra o projeto de aplicativo de Console que você criou na seção anterior.
  2. No procedimento Sub Main , substitua o código que você copiou na seção anterior com o seguinte código:
    Dim a As Integer = 2147483647
    Dim b As Integer = 0
    Dim c As Integer = 0
    
    Try
      a += 1
    Catch exc As DivideByZeroException
      Console.WriteLine("Error: Divide by zero")
    Catch exc As OverflowException
      Console.WriteLine("Error: Overflow")
    Finally
      Console.ReadLine()
    End Try
    						
    Este código inclui dois blocos Catch : um para capturar anterior dividir por zero e outro para interceptar o erro de estouro de novo.
  3. No menu Debug , clique em Iniciar para executar o aplicativo. A janela de Console exibe a seguinte mensagem de erro:
    Error: Overflow
    						
  4. Feche a janela do Console.
  5. Como sempre, você não pode prever todos os erros que podem ocorrer, você pode adicionar um bloco capturar todos exceções imprevistas. Por exemplo, adicione o seguinte código antes da instrução Finalmente capturar erros imprevistos e exibir a mensagem de erro:
    Catch exc As Exception
    Console.WriteLine("Error: " & exc.Message)
    					
  6. No menu arquivo , clique em Close Solution.

Uma exceção

Manipulação de exceção estruturada utiliza a instrução Catch para capturar uma exceção. Tratamento de exceção estruturado também fornece uma maneira para lançar uma exceção. Por exemplo, é útil lançar uma exceção quando você executar a validação de dados dentro de um procedimento Property Set porque talvez você queira lançar um erro se uma regra de negócio é violada.
  1. Inicie Visual Studio.NET ou Visual Studio de 2005.
  2. Crie um novo projeto de aplicativo de Console em Visual Basic.NET ou no Visual Basic 2005.
  3. No menu Project , clique em Add Class.
  4. Na janela Add New Item , digite clsPerson.vb no texto de nome caixa e clique em OK.
  5. Adicione o seguinte código dentro a classe pública clsPerson...End Class instruções:
    Private mintAge As Integer
    
    Public Property Age() As Integer
      Get
        Age = mintAge
      End Get
      Set(ByVal Value As Integer)
        If Value >= 0 Then
          mintAge = Value
        Else
          Throw New ArgumentException ("Age cannot be negative")
        End If
      End Set
    End Property
    						
    Esse código cria uma propriedade de idade . Porque uma pessoa não pode ter uma duração negativa, um erro é gerado se o usuário da classe tenta definir Age como um número que é menor que zero.
  6. No procedimento Sub Main Module1. vb, adicione o seguinte código:
    Dim p As New clsPerson()
    
    Try
      p.Age = -1
    Catch exc As Exception
      Console.WriteLine(exc.Message)
    Finally
      Console.ReadLine()
    End Try
    					
  7. No menu Debug , clique em Iniciar para executar o aplicativo. A janela de Console exibe a seguinte mensagem de erro:
    Age cannot be negative
    						
  8. Feche a janela do Console.

Listagem de código completa

Capturar uma exceção

Module Module1

  Sub Main()
    Dim a As Integer = 0
    Dim b As Integer = 0
    Dim c As Integer = 0

    Try
      a = b \ c
    Catch exc As Exception
      Console.WriteLine("A run-time error occurred")
    Finally
      Console.ReadLine()
    End Try

  End Sub

End Module
				

Capturar exceções vários

Module Module1

  Sub Main()
    Dim a As Integer = 2147483647
    Dim b As Integer = 0
    Dim c As Integer = 0

    Try
      a += 1
    Catch exc As DivideByZeroException
      Console.WriteLine("Error: Divide by zero")
    Catch exc As OverflowException
      Console.WriteLine("Error: Overflow")
    Catch exc As Exception
      Console.WriteLine("Error: " & exc.Message)
    Finally
      Console.ReadLine()
    End Try


  End Sub

End Module
				

Uma exceção

Module Module1

  Sub Main()
    Dim p As New clsPerson()

    Try
      p.Age = -1
    Catch exc As Exception
      Console.WriteLine(exc.Message)
    Finally
      Console.ReadLine()
    End Try
  End Sub

End Module

Public Class clsPerson

  Private mintAge As Integer

  Public Property Age() As Integer
    Get
      Age = mintAge
    End Get
    Set(ByVal Value As Integer)
      If Value >= 0 Then
        mintAge = Value
      Else
        Throw New ApplicationException("Age cannot be negative")
      End If
    End Set
  End Property

End Class
				

REFERÊNCIAS

Para obter mais informações, consulte os seguintes sites da Microsoft:
Erro ao manipular o VB.NET de forma: Vivendo com exceções (um artigo de Desenvolvedor de Visual Basic )
. aspx http://msdn.microsoft.com/en-us/library/aa227603 (v=vs.60)

Como faço para capturar uma exceção
. aspx http://msdn.microsoft.com/en-us/library/ys1b32h3 (v=vs.80)

Como eu gero uma exceção
. aspx http://msdn.microsoft.com/en-us/library/z7w9ff54 (v=vs.80)

Propriedades

Artigo: 315965 - Última revisão: 15 de junho de 2012 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Palavras-chave: 
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315965 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 315965

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com