Você está offline; aguardando reconexão
Entrar

Não há suporte para seu navegador

Você precisa atualizar seu navegador para usar o site.

Atualize para a versão mais recente do Internet Explorer

Como capturar exceções no Visual Basic 2005 ou no Visual Basic .NET

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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 301283
Para obter um Microsoft Visual translation from VPE for Csharp 2005 e Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 308345.

Para uma versão deste artigo do Microsoft Visual Basic 6.0, consulte 191474.
Sumário
Captura e lidar com exceções é uma tarefa de programação padrão. Este artigo demonstra como usar um bloco try-catch-finally para capturar uma exceção. Um bloco try-catch-finally é um "wrapper" colocar em torno de qualquer código onde existe a possibilidade de uma exceção.

Um bloco try-catch-finally consiste as seções a seguir:
  • Qualquer código que pode lançar uma exceção é colocado dentro do bloco try .
  • Se uma exceção é lançada, o bloco catch é inserido e o programa pode executar a operação apropriada para recuperar ou alerta o usuário.
  • O código no bloco finally será sempre executado e pode executar a limpeza depois que ocorreu uma exceção. O bloco finally é opcional.

Requisitos

A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs que você precisa:
  • Microsoft Windows Server 2003, Microsoft Windows 2000 Professional, Windows 2000 Server, o Windows 2000 Server ou Microsoft Windows NT 4.0 Server
  • O Microsoft Visual Basic 2005 ou Microsoft Visual Basic .NET

Exemplo passo a passo

  1. Crie um novo aplicativo de console no Visual Basic 2005 ou no Visual Basic. NET.
  2. No procedimento Sub Main, insira o exemplo de código que segue. O exemplo declara e inicializa três variáveis, no qual a inicialização do "k" faz com que um erro.
    ' This code generates an exception.	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")	Console.WriteLine()	Dim i as Integer = 10	Dim j as Integer = 0	Dim k As Integer = i/j ' Error on this line.					
  3. Pressione a tecla F5 para exibir a exceção.
  4. Coloque uma instrução try-catch em torno de seu código para capturar o erro. O código a seguir captura todos os erros que são lançados no código e exibe uma mensagem de erro genérico. Substitua o código no procedimento Sub Main com o código a seguir.
    ' This code shows how to catch an exception.Try	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")	Console.WriteLine()	Dim i as Integer = 10	Dim j as Integer = 0	Dim k As Integer = i/j ' Error on this line. Control jumps to the catch block.Catch	Console.WriteLine("An error occurred.")End Try
  5. Pressione CTRL+F5 para executar o projeto. Observe que a mensagem de erro de bloco catch é exibida.
  6. Se alguns limpeza ou pós-processamento precisa ser feito, independentemente de um erro, use a parte Finalmente da instrução try-catch-finally . Código na parte Finalmente a instrução sempre é executado, independentemente de uma exceção. O código a seguir exibe "essa instrução é sempre impresso" no console, mesmo se nenhum erro. Substitua o código de Sub Main com o código a seguir.
    ' This code shows how to catch an exception.	Try	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")	Console.WriteLine()	Dim i as Integer = 10	Dim j as Integer = 0	Dim k As Integer = i/j ' Error on this line. Control jumps to the catch block.Catch	Console.WriteLine("An error occurred.")Finally   ' This section is performed regardless of the above processing.	Console.WriteLine()	Console.WriteLine("This statement is always printed")End Try					
  7. Pressione CTRL+F5 para executar o projeto.
  8. Você pode usar o objeto de exceção com a instrução catch para recuperar detalhes sobre a exceção. Uma exceção tem um número de propriedades que podem ajudá-lo a identificar Ajuda, fonte ou até mesmo pilha sobre uma exceção. Essas informações podem ser muito útil para rastrear a causa original da exceção ou fornecer uma explicação melhor da sua fonte. O exemplo a seguir captura uma exceção e oferece uma mensagem de erro específico. Como antes, você pode substituir o código na Sub Main procedimento com o código a seguir.

    exemplo 1
    ' This code shows how to catch an exception.Try	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")	Console.WriteLine()	Dim i as Integer = 10	Dim j as Integer = 0	Dim k As Integer = i/j ' Error on this line. Control jumps to the catch block.Catch e As Exception  ' Perform code that deals with the exception                      ' or informs the user what occurred.	Console.WriteLine("The following error occurred:")	Console.WriteLine(e.ToString())  ' Print the error message to the user.Finally   ' This section is performed regardless of the above processing.	Console.WriteLine()	Console.WriteLine("This statement is always printed")End Try					
    Example 2
    ' This code shows how to catch an exception.Try	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")	Console.WriteLine()	Dim i as Integer = 10	Dim j as Integer = 0	Dim k As Integer = i/j ' Error on this line. Control jumps to the catch block.Catch e As Exception  ' Perform code that deals with the exception                      ' or informs the user what occurred.        Console.WriteLine("The following error occurred:")        Console.WriteLine( e.Message )     ' Print the error message.        Console.WriteLine( e.Source )      ' Name of application or object                                           ' that caused the error        Console.WriteLine( e.StackTrace )  ' String that contains the stack                                            ' trace for this exceptionFinally   ' This section is performed regardless of the above processing.        Console.WriteLine()        Console.WriteLine("This statement is always printed")End Try					
  9. Até este ponto, você tem lidou com o caso específico de uma exceção não-específica. No entanto, se você souber antecipadamente que tipo de exceção está prestes a ocorrer, pode capturar a exceção prevista e processá-lo adequadamente. Em seguida, você pode usar vários blocos Catch para capturar todas as outras exceções e lidar com eles como bem. O exemplo a seguir demonstra isso.
    Module Module1Sub Main()' Attempt to do some file processing.' This can cause a number of potential exceptions.' Note that you can use the specific exceptions to get extra information about that exception,' but this example focuses on showing control execution for those exceptions.Try	File.Create("c:/temp/test.txt")  ' Can fail for a number of reasonsCatch ioe As System.IO.IOException ' This error may occur if the Temp folder does not exist.	Console.WriteLine("An IO error occurred. The c:\temp folder does not exist")Catch se As System.Security.SecurityException ' You do not have the appropriate permission                                              ' to take this action.	Console.WriteLine("You don't have the security permissions to take this action!")Catch e As Exception    ' Catch all other exceptions.	Console.WriteLine( e.ToString() )  ' Print the standard exception information.End TryEnd SubEnd Module
    como as configurações do computador podem ser diferentes, o exemplo nesta etapa pode ou não pode lançar uma exceção. Se você quiser forçar uma exceção de E/S, altere o caminho do arquivo para uma pasta que não existe no computador.
Referências
Para obter mais informações, consulte o Microsoft .NET Framework Software Development Kit (SDK).
tratamento de erros try... catch... finally

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 301283 - Última Revisão: 12/06/2006 23:18:25 - Revisão: 5.5

  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB301283 KbMtpt
Comentários
"//c.microsoft.com/ms.js'><\/script>");