Sobes.tech
Junior — Middle

Σε ποιες περιπτώσεις χρησιμοποιείται το μπλοκ finally στη διαχείριση εξαιρέσεων και ποιο ρόλο παίζει;

sobes.tech AI

Απάντηση από AI

Το μπλοκ finally στη C# χρησιμοποιείται για την εκτέλεση κώδικα που πρέπει να εκτελεστεί σε κάθε περίπτωση μετά το μπλοκ try και πιθανά μπλοκ catch, ανεξάρτητα από το αν προκλήθηκε εξαίρεση ή όχι.

Ο κύριος ρόλος του finally είναι η απελευθέρωση πόρων, το κλείσιμο αρχείων, συνδέσεων με βάσεις δεδομένων, η απελευθέρωση μνήμης και άλλες λειτουργίες καθαρισμού που πρέπει πάντα να πραγματοποιούνται.

Παράδειγμα:

try
{
    // Κώδικας που μπορεί να προκαλέσει εξαίρεση
    using (var file = new StreamReader("file.txt"))
    {
        var content = file.ReadToEnd();
    }
}
catch (IOException ex)
{
    Console.WriteLine("Σφάλμα ανάγνωσης αρχείου: " + ex.Message);
}
finally
{
    // Αυτός ο κώδικας θα εκτελεστεί πάντα, ακόμη και αν δεν υπήρξε εξαίρεση ή αν διαχειρίστηκε
    Console.WriteLine("Ολοκλήρωση εργασίας με το αρχείο.");
}

Εάν προκύψει εξαίρεση στο μπλοκ try και δεν πιαστεί, το finally θα εκτελεστεί και πάλι πριν η εξαίρεση διαδοθεί περαιτέρω.