Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Quando ocorre uma exceção, a execução interrompe e o controle é dado ao manipulador de exceção apropriado. Isso geralmente significa que as linhas de código que você espera que sejam executadas são ignoradas. Alguma limpeza de recursos, como fechar um arquivo, precisa ser feita mesmo se uma exceção for gerada. Para fazer isso, você pode usar um finally
bloco. Um finally
bloco sempre é executado, independentemente de uma exceção ser gerada.
O exemplo de código a seguir usa um bloco try
/catch
para capturar um ArgumentOutOfRangeException. O Main
método cria duas matrizes e tenta copiar uma para a outra. A ação gera um ArgumentOutOfRangeException porque length
é especificado como -1 e o erro é gravado no console. O finally
bloco é executado independentemente do resultado da ação de cópia.
class ArgumentOutOfRangeExample
{
public static void Main()
{
int[] array1 = {0, 0};
int[] array2 = {0, 0};
try
{
Array.Copy(array1, array2, -1);
}
catch (ArgumentOutOfRangeException e)
{
Console.WriteLine($"Error: {e}");
throw;
}
finally
{
Console.WriteLine("This statement is always executed.");
}
}
}
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)
Throw
Finally
Console.WriteLine("This statement is always executed.")
End Try
End Sub
End Class