try-finally (Referência do C#)
The finally bloco é útil para limpar todos sistema autônomo recursos alocados na Tente bloco, bem sistema autônomo executar qualquer código que deve ser executado mesmo se houver uma exceção.Controle sempre é passado para o bloco finally independentemente de como o bloco try sai.
Enquanto catch é usado para manipular exceções que ocorrem em um bloco de demonstrativo finally é usado para garantir um bloco de código é executado independentemente de como o anterior try bloco será finalizado.
Exemplo
Neste exemplo, há uma demonstrativo de conversão inválido faz com que uma exceção.Quando você executa o programa, você receber uma mensagem de erro em time de execução, mas o finally cláusula ainda será executada e exibir a saída.
public class ThrowTest
{
static void Main()
{
int i = 123;
string s = "Some string";
object o = s;
try
{
// Invalid conversion; o contains a string not an int
i = (int)o;
}
finally
{
Console.Write("i = {0}", i);
}
}
}
Faz com que o exemplo acimaSystem.InvalidCastException para ser lançada.
Embora uma exceção foi detectada, a demonstrativo de saída incluídos no finally bloco ainda ser executado, ou seja:
i = 123
Para obter mais informações sobre o finally, consulte try-catch-finally.
Translation from VPE for Csharp também fornece o demonstrativo Using que fornece uma sintaxe conveniente para a mesma funcionalidade exata de uma demonstrativo try-finally.
Especificação da linguagem C#
Para obter mais informações, consulte as seções a seguir no Especificação da linguagem C#:
5.3.3.14 Instruções try finally
8.11 A demonstrativo try
16 Exceções
Consulte também
Tarefas
Como: Explicitamente lançar exceções
Conceitos
Referência
The try, capturar, and lançar Statements
Exceção tratamento instruções (referência C#)