Sobes.tech
Junior — Middle

V jakých situacích se používá blok finally při zpracování výjimek a jakou roli plní?

sobes.tech AI

Odpověď od AI

Blok finally v C# se používá k vykonání kódu, který má být proveden v každém případě po bloku try a případných blocích catch, bez ohledu na to, zda došlo k výjimce nebo ne.

Hlavní funkcí finally je uvolnění zdrojů, zavření souborů, ukončení spojení s databázemi, uvolnění paměti a jiné operace čištění, které musí vždy proběhnout.

Příklad:

try
{
    // Kód, který může vyvolat výjimku
    using (var file = new StreamReader("file.txt"))
    {
        var content = file.ReadToEnd();
    }
}
catch (IOException ex)
{
    Console.WriteLine("Chyba při čtení souboru: " + ex.Message);
}
finally
{
    // Tento kód se vždy vykoná, i když k výjimce nedošlo nebo byla ošetřena
    Console.WriteLine("Ukončení práce se souborem.");
}

Pokud dojde k výjimce v bloku try a není zachycena, finally se stejně vykoná před tím, než je výjimka předána dále.