Πίνακας περιεχομένων:
Ορισμός - Τι σημαίνει Τέλος Block σημαίνει;
Ένα τελικό μπλοκ, στο πλαίσιο του C #, αναφέρεται σε ένα μπλοκ δηλώσεων που εκτελούνται πάντοτε, ανεξάρτητα από απροσδόκητα γεγονότα ή εξαιρέσεις που μπορεί να προκύψουν κατά την εκτέλεση μιας εφαρμογής. Χρησιμοποιείται προαιρετικά με το μπλοκ "try / catch" και εγγυάται την εκτέλεση οποιουδήποτε κώδικα που πρέπει να εκτελεστεί πριν την έξοδο από το μπλοκ "try", ανεξάρτητα από την επιτυχία ή την αποτυχία της εκτέλεσης της εφαρμογής.
Η εκτέλεση ενός τελικού τμήματος αποσκοπεί στην αποδέσμευση πόρων, όπως είναι οι συνδέσεις βάσεων δεδομένων, οι οποίες είναι συνήθως διαθέσιμες σε περιορισμένες ποσότητες. Με αυτόν τον μηχανισμό, η διάθεση των πόρων πραγματοποιείται νωρίτερα από τη λειτουργία οριστικοποίησης του συλλέκτη σκουπιδιών, βελτιστοποιώντας έτσι τη μνήμη.
Η Techopedia εξηγεί Τέλος Block
Ο κώδικας στο τελικό μπλοκ μπορεί να χρησιμοποιηθεί για να χειριστεί τις εξαιρέσεις αμέσως μόλις εμφανιστούν, να καθαρίσει τη μνήμη που έχει διατεθεί στο μπλοκ "try" ή να απορρίψει αντικείμενα που κρατούν εξωτερικούς πόρους (όπως λαβές αρχείων) που χρησιμοποιούνται στο μπλοκ "try". Τέλος, ένα μπλοκ διευκολύνει επίσης την εκτέλεση των καθηκόντων νοικοκυριού όπως επαναφορά ενός δρομέα σε κανονική κατάσταση πριν από την ώρα μιας εξαίρεσης.
Γενικά, ο κώδικας μέσα σε ένα τελικό μπλοκ εκτελείται όταν ο έλεγχος εξέρχεται από ένα μπλοκ δοκιμής ως αποτέλεσμα της κανονικής εκτέλεσης, ως αποτέλεσμα της εκτέλεσης μιας δήλωσης "break", "goto", "continue" ή "επιστροφής" ή λόγω σε μια εξαίρεση από τη δοκιμαστική δήλωση.
Κάθε φορά που εμφανίζεται μια εξαίρεση στο μπλοκ try, ο έλεγχος περνά από τη γραμμή που προκάλεσε την εξαίρεση στο πλησιέστερο μπλοκ catch (χειριστής εξαιρέσεων) και έπειτα στο τελικό block. Επίσης, όταν εξαιρείται μια εξαίρεση σε ένα μπλοκ αλίευσης, ο έλεγχος μεταφέρεται στο τελικό μπλοκ. Επομένως, ο κώδικας που ακολουθεί τη γραμμή όπου συνέβη η εξαίρεση θα παραλειφθεί.
Εξαιρέσεις δεν πρέπει να ρίχνονται ρητά σε ένα τελικό μπλοκ. Αν προκύψει εξαίρεση κατά την εκτέλεση ενός τερματισμού, ο κώδικας μετά το σημείο όπου εκτοξεύεται η εξαίρεση δεν θα εκτελεστεί και η εξαίρεση θα μεταδοθεί στο εξωτερικό περικλείον μπλοκ δοκιμής. Εάν το τελικό μπλοκ χειρίζεται ήδη μια άλλη εξαίρεση, αυτό έχει ως αποτέλεσμα τον τερματισμό της επεξεργασίας της τρέχουσας εξαίρεσης.
Πρέπει να ληφθεί μέριμνα ώστε να μην μεταφέρεται ρητά η εκτέλεση σε ή τελικά ένα τετράγωνο, καθώς αυτό δεν είναι μια έγκυρη μεταφορά.