A chamar excepções no Visual Basic 2005 ou no Visual Basic .NET

Traduções de Artigos Traduções de Artigos
Artigo: 301283 - Ver produtos para os quais este artigo se aplica.
Para obter um Microsoft Visual C# 2005 e o Microsoft Visual C# .NET versão deste artigo, consulte 308345.

Para obter uma versão de Microsoft Visual Basic 6.0 deste artigo, consulte 191474.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Apanhar e lidar com excepções é uma tarefa de programação padrão. Este artigo demonstra como utilizar um bloco try-catch-finalmente para detectar uma excepção. Um bloco try-catch-finalmente é um dispositivo de "moldagem" que coloca à volta de qualquer código onde existe a possibilidade de uma excepção.

Um bloco try-catch-finalmente consiste em secções que se seguem:
  • Qualquer código que pode accionar uma excepção é colocado no interior de bloco tente .
  • Se uma excepção, o bloco catch é introduzido e o programa pode efectuar a operação apropriada para recuperar ou alerta o utilizador.
  • O código no bloco de finalmente é sempre executado e pode efectuar a limpeza após Ocorreu uma excepção. O bloco finally é opcional.

Requisitos

A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs que necessita:
  • Microsoft Windows Server 2003, Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server ou Microsoft Windows NT 4.0 Server
  • Microsoft Visual Basic 2005 ou do Microsoft Visual Basic .NET

Exemplo passo a passo

  1. Crie uma nova aplicação de consola no Visual Basic 2005 ou no Visual Basic. NET.
  2. No procedimento Sub Main, insira o código de exemplo que se segue. O exemplo declara e inicializa três variáveis, onde a inicialização do "k" provoca 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. Prima a tecla F5 para ver a excepção.
  4. Molda uma instrução try-catch em todo o código para capturar o erro. O seguinte código identificou todos os erros que são iniciados no código e apresenta uma mensagem de erro genérico. Substitua o código no procedimento Sub Main com o seguinte código.
    ' 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. Prima CTRL + F5 para executar o projecto. Repare que é apresentada na mensagem de erro do bloco catch .
  6. Se alguns limpeza ou post-processing deve ser feito independentemente do erro, utilize parte finalmente da instrução try-catch-finalmente . Na parte por fim da instrução é sempre executado código, independentemente da excepção. O seguinte código apresenta "Esta instrução é sempre impresso" na consola, mesmo que não ocorreu nenhum erro. Substituir o código de sub main o seguinte código.
    ' 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. Prima CTRL + F5 para executar o projecto.
  8. Pode utilizar o objecto de excepção com a instrução catch para obter detalhes sobre a excepção. Excepção tem um número de propriedades que podem ajudar a identificar ajuda, origem ou mesmo pilha informações sobre uma excepção. Estas informações podem ser muito úteis para controlo para baixo a causa da excepção original ou fornecer uma melhor explicação da respectiva origem. O exemplo que se segue identificou uma excepção e fornece uma mensagem de erro específico. Tal como anteriormente, pode substituir o código de sub main procedimento com o seguinte código.

    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 exception
    Finally   ' This section is performed regardless of the above processing.
            Console.WriteLine()
            Console.WriteLine("This statement is always printed")
    End Try
    					
  9. Até esta altura, ter distribuídas com caso específico de uma excepção não específico. No entanto, se souber antecipadamente que tipo de excepção é a ocorrer, pode detectar a excepção prevista e processá-lo em conformidade. Em seguida, é possível utilizar vários blocos Apanha para detectar todas as outras excepções e lidar com os bem. O exemplo seguinte demonstra este.
    Module Module1
    Sub 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 reasons
    
    Catch 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 Try
    End Sub
    End Module
    uma vez que podem ser diferentes configurações de computador, o exemplo neste passo podem ou não podem accionar uma excepção. Se pretender forçar uma excepção E/S, altere o caminho do ficheiro para uma pasta que não existe no computador.

Referências

Para mais informações, consulte o Microsoft .NET Framework Software Development Kit (SDK).

Propriedades

Artigo: 301283 - Última revisão: 6 de dezembro de 2006 - Revisão: 5.5
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: 
kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB301283 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: 301283

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