Sobes.tech
Junior — Middle

Milyen helyzetekben használják a finally blokkot kivételkezelés során, és milyen szerepet tölt be?

sobes.tech MI

Válasz az MI-től

A C#-ban a finally blokkot arra használják, hogy olyan kódot futtassanak, amely minden esetben végrehajtásra kerül a try blokk és a lehetséges catch blokkok után, függetlenül attól, hogy kivétel történt-e vagy sem.

A finally fő feladata az erőforrások felszabadítása, fájlok bezárása, adatbázis-kapcsolatok lezárása, memória felszabadítása és más tisztítási műveletek, amelyek mindig megtörténnek.

Példa:

try
{
    // Kód, amely kivételt okozhat
    using (var file = new StreamReader("file.txt"))
    {
        var content = file.ReadToEnd();
    }
}
catch (IOException ex)
{
    Console.WriteLine("Hiba a fájl olvasásakor: " + ex.Message);
}
finally
{
    // Ez a kód mindig végrehajtódik, még akkor is, ha nem történt kivétel vagy kezelték
    Console.WriteLine("A fájl kezelése befejeződött.");
}

Ha a try blokkban kivétel történik, és az nem kerül elkapásra, a finally akkor is végrehajtódik, mielőtt a kivétel továbbterjedne.