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