Exceções e manipulação de exceção (guia de programação C#)
Exceção do linguagem translation from VPE for Csharp manipular recursos ajudam você lida com qualquer situações excepcionais ou inesperadas que ocorrem quando um programa está sendo executado.Manipulação de exceção usa o try, catch, e finally palavras-chave para tentar executar ações que podem não ter êxito, para lidar com falhas quando você decidir que é razoável para fazer isso e para limpar recursos posteriormente. Exceções podem ser geradas pelo common linguagem tempo de execução (CLR), o .NET estrutura ou quaisquer bibliotecas de terceiros, ou pelo código do aplicativo.Exceções são criadas usando o throw palavra-chave.
Em muitos casos, uma exceção pode ser lançada não por um método que seu código possui telefonar ed diretamente, mas por outro método ainda mais para baixo no telefonar pilha.Quando isso acontece, o CLR irá desenrolar a pilha, procurando por um método com um catch bloco para exceção específica tipo e ele serão executado na primeira tal catch bloco que se encontra. Se ele encontrar nenhum apropriado catch bloco em qualquer lugar no telefonar pilha, ele irá terminar o processo e exibir uma mensagem ao usuário.
Neste exemplo, um método testa divisão por zero e captura o erro.Sem o tratamento de exceção, este programa deve terminar com um DivideByZeroException estava sem tratamento erro.
class ExceptionTest
{
static double SafeDivision(double x, double y)
{
if (y == 0)
throw new System.DivideByZeroException();
return x / y;
}
static void Main()
{
// Input for test purposes. Change values
// to see exception handling behavior.
double a = 98, b = 0;
double result = 0;
try
{
result = SafeDivision(a, b);
Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
}
catch (DivideByZeroException e)
{
Console.WriteLine("Attempted divide by zero.");
}
}
}
Visão Geral das Exceções
Exceções com as seguintes propriedades:
As exceções são tipos que derivam, por fim, todos os System.Exception.
Use um try bloco em torno de instruções que podem lançar exceções.
Quando ocorre uma exceção no try bloquear o fluxo de controle vai para o manipulador de exceção associada primeiro presente em qualquer lugar no telefonar pilha. Em translation from VPE for Csharp, o catch palavra-chave é usada para definir um manipulador de exceção.
Se nenhum manipulador de exceções para uma determinada exceção estiver presente, o programa pára de executar com uma mensagem de erro.
A menos que você pode manipulá-lo e deixe o aplicativo em um estado conhecido, não capturar uma exceção.Se você capturar System.Exception, relançá-lo usando o throw palavra-chave no participante do catch bloco.
If a catch bloco define uma variável de exceção, você pode usá-los para obter mais informações sobre o tipo de exceção que ocorreu.
Exceções podem ser geradas explicitamente por um programa usando o throw palavra-chave.
Objetos exceção contêm informações detalhadas sobre o erro, sistema autônomo o estado da pilha de chamadas e uma descrição de texto do erro.
Código em um finally bloco é executado mesmo que uma exceção é lançada. Use um finally bloco para liberar recursos, por exemplo, para fechar quaisquer fluxos ou arquivos que foram abertos no try bloco.
Exceções gerenciadas no .NET estrutura são implementadas do mecanismo de manipulação de exceções estruturado Win32.Para obter mais informações, consulte Structured Exceção Manipulação (C++) e Um curso intensivo sobre a fundo o Win32 estruturado manipulação de exceção.
Seções relacionadas
Consulte os tópicos a seguir para obter mais informações sobre exceções e manipulação de exceção:
Usando exceções (guia de programação translation from VPE for Csharp)
Tratamento exceção (guia de programação translation from VPE for Csharp)
Criação e lançamento de exceções (guia de programação translation from VPE for Csharp)
Exceções geradas pelo compilador (guia de programação translation from VPE for Csharp)
Como: Manipular uma exceção usando try/catch (translation from VPE for Csharp Programming guia)
Como: Executar o código de limpeza com finalmente (translation from VPE for Csharp Programming guia)
Especificação da linguagem C#
Para obter mais informações, consulte as seções a seguir no Especificação da linguagem C#:
8.9.5 A demonstrativo throw
8.10 A instrução try
16 Exceções
Consulte também
Conceitos
Referência
try-finally (Referência do C#)
try-catch-finally (translation from VPE for Csharp Reference)
Outros recursos
Diretrizes de design para exceções
Tratamento e lançamento de exceções
Escrevendo código .NET confiável
Date |
History |
Motivo |
---|---|---|
Julho de 2008 |
Exemplo de código modificado e texto adicionado sobre desenrolar a pilha. |
Correção de bug do conteúdo. |
Julho de 2008 |
Exemplo adicional para explicação sobre o finally bloco. |
Aprimoramento de informações. |
Julho de 2008 |
Informações sobre o Win32 adicionadas estruturada de mecanismo de manipulação de exceção. |
Aprimoramento de informações. |