Sobes.tech
Junior — Middle

V ktorých situáciách sa používa blok finally pri spracovaní výnimiek a akú úlohu plní?

sobes.tech AI

Odpoveď od AI

Blok finally v C# se uporablja za izvajanje kode, ki mora biti izvedena v vsakem primeru po bloku try in morebitnih blokih catch, ne glede na to, ali je prišlo do izjeme ali ne.

Glavna vloga finally je sprostitev virov, zapiranje datotek, povezav z bazami podatkov, sprostitev pomnilnika in druge operacije čiščenja, ki se morajo vedno zgoditi.

Primer:

try
{
    // Koda, ki lahko povzroči izjemo
    using (var file = new StreamReader("file.txt"))
    {
        var content = file.ReadToEnd();
    }
}
catch (IOException ex)
{
    Console.WriteLine("Napaka pri branju datoteke: " + ex.Message);
}
finally
{
    // Ta koda se bo vedno izvedla, tudi če ni bilo izjeme ali je bila obravnavana
    Console.WriteLine("Zaključek dela z datoteko.");
}

Če pride do izjeme v bloku try in ni zajeta, se bo finally vseeno izvedel pred tem, da bo izjema posredovana naprej.