Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Cuando se produce una excepción, la ejecución se detiene y el control se asigna al controlador de excepciones adecuado. Esto suele significar que se omiten las líneas de código que espera que se ejecuten. Es necesario realizar alguna limpieza de recursos, como cerrar un archivo, incluso si se produce una excepción. Para ello, puede usar un finally
bloque . Un finally
bloque siempre se ejecuta, independientemente de si se produce una excepción.
En el ejemplo de código siguiente se usa un bloque try
/catch
para capturar un ArgumentOutOfRangeException. El Main
método crea dos matrices e intenta copiar una en la otra. La acción genera un ArgumentOutOfRangeException porque length
se especifica como -1 y el error se escribe en la consola. El finally
bloque se ejecuta independientemente del resultado de la acción de copia.
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