Como capturar exceções em Visual translation from VPE for Csharp

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: 308345
Para uma versão deste artigo do Microsoft Visual Basic. NET, consulte 301283.

Este artigo se refere aos seguintes namespaces Microsoft .NET Framework Class Library:
  • System.IO
  • System.Security

NESTA TAREFA

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.
back to the top

Requisitos

A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs são necessários:
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server ou Windows NT 4.0 Server
  • Microsoft Visual translation from VPE for Csharp .NET ou Microsoft Visual 2005 translation from VPE for Csharp
back to the top

Como Catch Exceptions in Visual translation from VPE for Csharp

  1. Crie um novo aplicativo de console em translation from VPE for Csharp Visual.

    Observação No Visual translation from VPE for Csharp 2005, Program.cs é criado por padrão em vez de Class1.cs.
  2. Substitua todo o código na janela de código Class1 o seguinte código de exemplo. O código declara e inicializa três variáveis, no qual a inicialização do "k" faz com que um erro.
    // This code generates an exception.using System;namespace ExceptionApp{    class Class1    {	static void Main()	{            Console.WriteLine("We're going to divide 10 by 0 and see what happens...") ;            Console.WriteLine() ;	   int i = 10 ;            int j = 0 ;            int k = i/j ; // Error on this line. 	}    }}					
  3. Pressione F5. Você recebe uma exceção System.DivideByZeroException .
  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 na janela de código Class1 com o seguinte:
    // This code shows how to catch an exception.using System;namespace ExceptionApp{    class Class1    {	static void Main()	{            try            {                Console.WriteLine("We're going to divide 10 by 0 and see what happens...") ;                Console.WriteLine() ;	       int i = 10 ;                int j = 0 ;                int k = i/j ; // Error on this line.            }            catch            {                Console.WriteLine("An error occurred.");            }	}    }}					
  5. Pressione CTRL+F5 para executar o aplicativo. Observe que a mensagem de erro de bloco catch é exibida, em vez da mensagem de exceção do sistema.
  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 na janela de código Class1 com o seguinte:
    // This code shows how to catch an exception.using System;namespace ExceptionApp{    class Class1    {	static void Main()	{            try            {                Console.WriteLine("We're going to divide 10 by 0 and see what happens...") ;                Console.WriteLine() ;	       int i = 10 ;                int j = 0 ;                int k = i/j ; // Error on this line.            }            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");               }	}    }}					
  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 ajudar a identificar a origem ou pilha até mesmo 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 em Class1 a janela de código com o código a seguir:
    // This code shows how to catch an exception.using System;namespace ExceptionApp{    class Class1    {	static void Main()	{            try            {                Console.WriteLine("We're going to divide 10 by 0 and see what happens...") ;                Console.WriteLine() ;	       int i = 10 ;                int j = 0 ;                int k = i/j ; // Error on this line.            }            catch(Exception e)            {                Console.WriteLine("An error occurred.");                Console.WriteLine(e.ToString());            }            finally   //This section is performed regardless of the above processing.            {                Console.WriteLine();                Console.WriteLine("This statement is always printed");               }	}    }}					
    o código de exemplo seguinte demonstra como obter informações de erro estendidas. Este exemplo fornece a mensagem, a origem do erro e o rastreamento de pilha:
    // This code shows how to catch an exception.using System;namespace ExceptionApp{    class Class1    {	static void Main()	{            try            {                Console.WriteLine("We're going to divide 10 by 0 and see what happens...") ;                Console.WriteLine() ;	       int i = 10 ;                int j = 0 ;                int k = i/j ; // Error on this line. Control jumps to the catch block.            }            //Perform code that deals with the exception or inform the user what occurred.            catch(Exception e)              {                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");               }	}    }}					
  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 seguinte demonstra isso:
    // This code shows how to catch an exception.using System;using System.IO;using System.Security;namespace ExceptionApp{    class Class1    {	static void Main()	{	    try	    {		File.Create("c:\\temp\\testapp.txt");  //can fail for number of reasons	    }				    // This error may occur if the temp folder does not exist.	    catch(IOException ioe)	    {		Console.WriteLine("An IO error ocurred. The c:\\temp folder does not exist");	    }	    // You do not have the appropriate permission to take this action.	    catch(SecurityException se)	    {		Console.WriteLine("You don't have the security permissions to take this action!");					    }	    // Catch all exceptions.	    catch(Exception e)  	    {		Console.WriteLine(e.ToString());	    }	}    }} 						
    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.
back to the top
Referências
Para obter mais informações, consulte o Microsoft .NET Framework Software Development Kit (SDK).

back to the top
tratamento de erros try... catch... finally

Aviso: este artigo foi traduzido automaticamente

Proprietăți

ID articol: 308345 - Ultima examinare: 12/11/2006 21:04:48 - Revizie: 3.4

Microsoft Visual C# 2005, Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition

  • kbmt kbhowtomaster KB308345 KbMtpt
Feedback