Exceptions and Exception Handling (C# Programming Guide)
Manipular exceções com os recursos do C# ajuda você que lida com qualquer situação inesperada ou excepcional que pode ocorrer quando um programa está sendo executado. Usos de manipulação de exceção de try, catch, e finally palavras-chave para testar as ações que podem não ter êxito, para lidar com falhas quando você decidir que é razoável para fazer isso e limpar recursos posteriormente. As exceções podem ser geradas pela Common Language Runtime (CLR), por quaisquer bibliotecas de terceiros, pelo .NET Framework 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 tenha chamado diretamente, mas por outro método ainda mais à baixo na pilha de chamadas. Quando isso acontece, o CLR será desenrolamento de pilha, procurando um método com um catch Bloquear para o tipo específico de exceção e ele executará a primeira tais catch Bloquear que se localiza. Se encontrar não apropriado catch Bloquear em qualquer lugar na pilha de chamadas, ele irá finalizar o processo e exibir uma mensagem ao usuário.
Neste exemplo, um método testa uma 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 the 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 têm as seguintes propriedades:
As exceções são os tipos derivam, por fim, todos os System.Exception.
Use um try Bloco de declarações de que pode lançar exceções.
Quando ocorre uma exceção no try Bloquear, o fluxo de controle de saltos para o manipulador de exceção associada primeiro que está presente em qualquer lugar na pilha de chamada. Em C# a catch palavra-chave é usada para definir um manipulador de exceção.
Se nenhum manipulador de exceção para uma determinada exceção estiver presente, o programa pára a execução de uma mensagem de erro.
Não capturar uma exceção a menos que você possa manipulá-la e deixar a aplicação em um estado conhecido Se detectar os System.Exception, relançá-lo usando o throw palavra-chave no final o catch bloco.
Se um catch bloco define uma variável de exceção, você pode usá-lo para obter mais informações sobre o tipo de exceção ocorrida.
Exceções podem ser geradas explicitamente por um programa usando o throw palavra-chave.
Objetos Exception contêm informações detalhadas sobre o erro, como, por exemplo, o estado da pilha de chamadas e uma descrição de texto do erro.
O código em um finally bloco é executado mesmo se uma exceção é lançada. Use um finally bloco para liberar recursos, por exemplo fechar todos os fluxos ou arquivos que foram abertos a try bloco.
Gerenciado de exceções na.NET Framework são implementados na parte superior da mecanismo de manipulação de exceção do Win32 estruturado. Para obter mais informações, consulte Structured Exception Handling (C++) e A Crash Course on a profundidades de Win32 Structured Exception Handling.
Seções relacionadas
Consulte os tópicos a seguir para obter mais informações sobre exceções e manipulação de exceção:
Criação e lançamento de exceções (guia de programação de C#)
How to: Handle an Exception Using try/catch (C# Programming Guide)
How to: Executar usando Código de limpeza finalmente (guia de programação C#)
Especificação da linguagem C#
Para obter mais informações, consulte C# Language Specification A especificação de linguagem é a fonte definitiva para a sintaxe e o uso de C#.
Consulte também
Referência
Tente catch de--finalmente (referência de C#)
Conceitos
Tratamento e lançamento de exceções
Tratamento e lançamento de exceções