C# Language Bloquer enfin


Exemple

try
{
    /* code that could throw an exception */
}
catch (Exception)
{
    /* handle the exception */
}
finally
{
    /* Code that will be executed, regardless if an exception was thrown / caught or not */
}

Le bloc try / catch / finally peut être très utile lors de la lecture de fichiers.
Par exemple:

FileStream f = null;

try
{
    f = File.OpenRead("file.txt");
    /* process the file here */
}
finally
{
    f?.Close(); // f may be null, so use the null conditional operator.
}

Un bloc try doit être suivi soit d'un bloc catch soit d'un bloc finally . Cependant, comme il n'y a pas de bloc catch, l'exécution provoquera une terminaison. Avant la fin, les instructions contenues dans le bloc finally seront exécutées.

Dans la lecture de fichiers, nous aurions pu utiliser un bloc using FileStream (ce OpenRead renvoie OpenRead ) implémente IDisposable .

Même s'il existe une instruction de return dans le bloc try , le bloc finally sera généralement exécuté; il y a quelques cas où cela ne va pas: