Partilhar via


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

Guia de Programação C#

Referência

Palavras-chave C#

The try, capturar, and lançar Statements

Exceção tratamento instruções (referência C#)

Descartar referência (C#)

try-catch (Referência do C#) 

Outros recursos

Referência C#