Compartir a través de


Cómo: Utilizar bloques Finally

Actualización: noviembre 2007

Cuando se produce una excepción, se detiene la ejecución y da el control al controlador de excepciones más cercano. A menudo, esto significa que no se ejecutan líneas de código que se espera que se llamen siempre. Siempre se debe ejecutar cierta limpieza de recursos, como el cierre de un archivo, incluso si se produce una excepción. Para lograr esto, se puede usar un bloque Finally. Los bloques Finally se ejecutan siempre, independientemente de si se produce una excepción o no.

En el siguiente ejemplo de código se utiliza un bloque try/catch para detectar una excepción ArgumentOutOfRangeException. El método Main crea dos matrices e intenta copiar una en la otra. La acción genera una ArgumentOutOfRangeException y el error se escribe en la consola. El bloque Finally se ejecuta, sea cual sea el resultado de la acción de copia.

Ejemplo

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.");
         }
      }
   }

Vea también

Tareas

Cómo: Utilizar el bloque Try/Catch para detectar excepciones

Cómo: Iniciar excepciones explícitamente

Cómo: Crear excepciones definidas por el usuario

Otros recursos

Fundamentos del control de excepciones