Como: Uso Finally bloqueia
Quando ocorre uma exceção, a execução para e o controle é dado ao manipulador de exceção mais próximo.Isso geralmente significa que linhas de código que você pretende que sempre sejam chamadas não sejam executadas.Alguns recursos de limpeza, como fechamento de um arquivo, sempre devem ser executados, mesmo se uma exceção for lançada.Para fazer isso, você pode usar um bloco finally.O bloco finally será sempre executado, independentemente se uma exceção for, ou não, lançada.
O exemplo de código a seguir usa um bloco try/catch para capturar uma ArgumentOutOfRangeException.O método Main cria duas matrizes e tenta copiar uma para a outra.A ação gera um ArgumentOutOfRangeException e o erro é escrito no console.O bloco finally é executado independentemente do resultado da ação de cópia.
Exemplo
Imports System
Class ArgumentOutOfRangeExample
Public Shared Sub Main()
Dim array1 As Integer() = {0, 0}
Dim array2 As Integer() = {0, 0}
Try
Array.Copy(array1, array2, - 1)
Catch e As ArgumentOutOfRangeException
Console.WriteLine("Error: {0}", e)
Finally
Console.WriteLine("This statement is always executed.")
End Try
End Sub 'Main
End Class 'ArgumentOutOfRangeExample
using System;
class ArgumentOutOfRangeExample
{
static public void Main()
{
int[] array1={0,0};
int[] array2={0,0};
try
{
Array.Copy(array1,array2,-1);
}
catch (ArgumentOutOfRangeException e)
{
Console.WriteLine("Error: {0}",e);
}
finally
{
Console.WriteLine("This statement is always executed.");
}
}
}
Consulte também
Tarefas
Como: Use o bloco try/catch para interceptar exceções
Como: Lançar exceções explicitamente
Como: Criar exceções definida pelo usuário