Sobes.tech
Junior — Middle

Millistes olukordades kasutatakse finally plokki erandite töötlemisel ja millist rolli see täidab?

sobes.tech AI

Vastus AI-lt

C# keeles kasutatakse finally plokki koodi täitmiseks, mis peab toimuma igal juhul pärast try plokki ja võimalikke catch plokke, sõltumata sellest, kas erand tekkis või mitte.

finally-i peamine ülesanne on vabastada ressursid, sulgeda failid, lõpetada ühendused andmebaasidega, vabastada mälu ja teha muid puhastustöid, mis peavad alati toimuma.

Näide:

try
{
    // Kood, mis võib põhjustada erandi
    using (var file = new StreamReader("file.txt"))
    {
        var content = file.ReadToEnd();
    }
}
catch (IOException ex)
{
    Console.WriteLine("Viga faili lugemisel: " + ex.Message);
}
finally
{
    // See kood täidetakse alati, isegi kui erand ei toimunud või see on töödeldud
    Console.WriteLine("Failiga töötamine lõppes.");
}

Kui try plokis tekib erand ja see ei ole püütud, siis finally täidetakse ikkagi enne, kui erand edasi levib.