ID do artigo: 816157 - Última revisão: quarta-feira, 16 de julho de 2008 - Revisão: 3.1
Como usar o tratamento no .NET translation from VPE for Csharp Visual e no Visual translation from VPE for Csharp 2005 ou 2008 translation from VPE for Csharp Visual de exceção estruturada
Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Este artigo descreve como usar manipulação no Microsoft Visual translation from VPE for Csharp de exceção estruturada. NET, no Microsoft Visual translation from VPE for Csharp 2005 ou no Microsoft Visual translation from VPE for Csharp 2008.
O Visual translation from VPE for Csharp .NET oferece manipulação de exceção estruturada que fornece um poderoso e uma maneira mais legível para manipular erros. Estruturado de manipulação de exceções permite que você aninhar manipuladores de erro dentro de outros manipuladores de erro que estão no mesmo procedimento. Manipulação de exceção estruturada usa uma sintaxe de bloco é semelhante ao se... Else... End If instrução. Isso torna código translation from VPE for Csharp Visual .NET ou em versões posteriores do translation from VPE for Csharp Visual mais legível e fácil de manter. Você pode manipular exceções no Visual translation from VPE for Csharp .NET ou em versões posteriores translation from VPE for Csharp Visual usando uma combinação de instruções de manipulação de exceção:
tente
capturar
por fim
Lançar
A sintaxe básica do tratamento de erros estruturado é da seguinte maneira:
try
{
// Code that is expected to raise an exception.
}
catch(Exception e)
{
// Code that can handle an error.
}
finally
{
// Code to do any final cleanup.
}
você pode incluir qualquer Visual válido translation from VPE for Csharp código no bloco try , ou pode incluir outro bloco try ou outra hierarquia de tente blocos. Quando ocorre uma exceção em qualquer ponto, o common language runtime procura o mais próximo bloco tente que inclui esse código e não é executado quaisquer linhas de código adicionais. O controle é então passado para um correspondente bloco catch , se houver e para o bloco associado finally . Você também pode especificar várias instruções catch para que cada bloco catch trata um erro específico.
No Microsoft Visual Studio.NET, clique em Iniciar , aponte para programas , aponte para Microsoft Visual Studio .NET e, em seguida, clique em Microsoft Visual Studio .NET .
No Microsoft Visual Studio 2005, clique em Iniciar , aponte para programas , aponte para Microsoft Visual Studio 2005 e, em seguida, clique em Microsoft Visual Studio 2005 .
No Microsoft Visual Studio 2008, clique em Iniciar , aponte para programas , aponte para Microsoft Visual Studio 2008 e, em seguida, clique em Microsoft Visual Studio 2008
No menu arquivo , aponte para novo e, em seguida, clique em Project .
Na caixa de diálogo New Project , execute estas etapas:
Em Project Types , clique em projetos translation from VPE for Csharp Visual .
Observação No Visual Studio 2005 ou no Visual Studio 2008, clique em translation from VPE for Csharp Visual em Tipos de projeto .
Em modelos , clique em Aplicativo de console .
Na caixa nome , digite MyConsoleApp .
Na caixa Location , digite C:\ e, em seguida, clique em OK .
Adicione o seguinte código na função Main() :
int a = 0;
int b = 10;
int c = 0;
try
{
a = b / c;
}
catch (Exception e)
{
Console.WriteLine("A run-time error occurred.");
}
finally
{
Console.ReadLine();
}
Para executar o aplicativo, clique em Iniciar no menu Debug . O código tenta dividir um número por 0. Essa operação não é válida e causa um erro de divisão por zero. No entanto, o bloco catch captura este erro, e a janela console exibe a seguinte mensagem de erro:
Esta seção demonstra como usar várias instruções catch para manipular erros diferentes.
Abra o projeto Console Application que você criou na seção "Catch an Exception" deste artigo.
Substitua o código existente na função Main() com o código a seguir:
int a = 2147483647;
int b = 0;
int c = 0;
try
{
a = checked(a + 1);
}
catch (DivideByZeroException e)
{
Console.WriteLine("Error: Divide by Zero", e.Message);
}
catch (OverflowException e)
{
Console.WriteLine("Error: Overflow", e.Message);
}
finally
{
Console.ReadLine();
}
este código inclui dois blocos catch :
Um bloco catch captura o erro de divisão por zero anterior.
Um bloco catch captura o erro de estouro de novo.
Para executar o aplicativo, clique em Iniciar no menu Debug . console janela exibirá a seguinte mensagem de erro:
Erro: estouro
Feche a janela console .
Como sempre, você não pode antecipar todos os erros que podem ocorrer, você pode adicionar um bloco catch para todas as exceções que você não pode antecipar. Por exemplo, adicione o seguinte código antes da instrução finally para capturar erros que você não pode antecipar e para exibir a mensagem de erro apropriado:
Manipulação de exceção estruturada utiliza a instrução catch para capturar uma exceção. Com tratamento de exceção estruturada, você também pode lançar uma exceção. Por exemplo, você talvez ache útil para lançar uma exceção quando você executa validação de dados dentro de um procedimento Property Set , porque você pode deseja lançar um erro se uma regra de negócio é violada.
No Microsoft Visual Studio.NET, clique em Iniciar , aponte para programas , aponte para Microsoft Visual Studio .NET e, em seguida, clique em Microsoft Visual Studio .NET .
No Microsoft Visual Studio 2005, clique em Iniciar , aponte para programas , aponte para Microsoft Visual Studio 2005 e, em seguida, clique em Microsoft Visual Studio 2005 .
No Microsoft Visual Studio 2008, clique em Iniciar , aponte para programas , aponte para Microsoft Visual Studio 2008 e, em seguida, clique em Microsoft Visual Studio 2008
No menu arquivo , aponte para novo e, em seguida, clique em Project .
Na caixa de diálogo New Project , execute estas etapas:
Em Project Types , clique em projetos translation from VPE for Csharp Visual .
Observação No Visual Studio 2005 ou no Visual Studio 2008, clique em translation from VPE for Csharp Visual em Tipos de projeto .
Em modelos , clique em Aplicativo de console .
Na caixa nome , digite MyNewConsoleApp .
Na caixa Location , digite C:\ e, em seguida, clique em OK .
No menu Project , clique em Adicionar classe .
Na caixa de diálogo Add New Item , digite clsPerson.cs na caixa nome e em seguida, clique em Abrir .
Observação No Visual Studio 2005 ou no Visual Studio 2008, clique em Adicionar .
Adicione o seguinte código na classe clsPerson :
public clsPerson()
{
}
private int mintAge;
public int Value;
public int Age
{
get
{
Age = mintAge;
return Age;
}
set
{
if(Value > 0)
mintAge = Value;
else
throw new ArgumentException("Age cannot be negative.");
}
}
esse código cria uma propriedade de idade . Como uma pessoa não é possível ter uma duração negativa, um erro é gerado se o usuário da classe tentar definir a propriedade Age como um número que seja menor que 0.
Na função Main() de Class1.cs , adicione o seguinte código:
using System;
namespace MyConsoleApp
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
int a = 0;
int b = 0;
int c = 0;
try
{
a = b / c;
}
catch (Exception e)
{
Console.WriteLine("A run-time error occurred.");
}
finally
{
Console.ReadLine();
}
}
}
}
Capturar exceções vários
using System;
namespace MyConsoleApp
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
int a = 2147483647;
try
{
a = checked(a + 1);
}
catch (DivideByZeroException e)
{
Console.WriteLine("Error: Divide by Zero", e.Message);
}
catch (OverflowException e)
{
Console.WriteLine("Error: Overflow", e.Message);
}
catch (Exception e)
{
Console.WriteLine("Error: ", e.Message);
}
finally
{
Console.ReadLine();
}
}
}
}
Lançar uma exceção
using System;
namespace MyNewConsoleApp
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
clsPerson p = new clsPerson();
try
{
p.Age = -1;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
Console.ReadLine();
}
}
}
public class clsPerson
{
public clsPerson()
{
}
private int mintAge;
public int Value;
public int Age
{
get
{
Age = mintAge;
return Age;
}
set
{
if(Value > 0)
mintAge = Value;
else
throw new ArgumentException("Age cannot be negative.");
}
}
}
}
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: 816157
(http://support.microsoft.com/kb/816157/en-us/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
Diga-nos o porque e o que podemos fazer para melhorar esta informação
Obrigado! Seus comentários são usados para nos ajudar a aperfeiçoar o conteúdo de suporte. Para obter mais opções de ajuda, visite a Home Page de Ajuda e Suporte.