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.