Share via


Comment : utiliser des blocs finally

Mise à jour : novembre 2007

Lorsqu'une exception se produit, l'exécution s'arrête et le contrôle passe au gestionnaire d'exceptions le plus proche. Cela signifie souvent que des lignes de code qui sont normalement toujours appelées ne sont pas exécutées. Certaines opérations de nettoyage de ressources, telles que la fermeture d'un fichier, doivent toujours être exécutées même si une exception est levée. Pour ce faire, vous pouvez utiliser un bloc finally. Un bloc finally est toujours exécuté, avec ou sans condition d'exception.

L'exemple de code suivant utilise un bloc try/catch pour intercepter une exception ArgumentOutOfRangeException. La méthode Main crée deux tableaux et tente de copier l'un dans l'autre. Cette action génère une ArgumentOutOfRangeException et l'erreur est envoyée à la console. Le bloc finally s'exécute indépendamment du résultat de l'opération de copie.

Exemple

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

Voir aussi

Tâches

Comment : utiliser le bloc try/catch pour intercepter des exceptions

Comment : lever explicitement des exceptions

Comment : créer des exceptions définies par l'utilisateur

Autres ressources

Notions de base de la gestion des exceptions