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.