C# Language Finalmente bloque


Ejemplo

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 */
}

El bloque try / catch / finally puede ser muy útil al leer archivos.
Por ejemplo:

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 bloque try debe ir seguido de un catch o un bloque finally . Sin embargo, como no hay bloque catch, la ejecución causará la terminación. Antes de la terminación, las declaraciones dentro del bloque finally serán ejecutadas.

En la lectura de archivos podríamos haber usado un bloque de using como FileStream (lo que devuelve OpenRead ) implementa como IDisposable .

Incluso si hay una declaración de return en el bloque try , el bloque finally generalmente se ejecutará; Hay algunos casos en los que no: