Πίνακας περιεχομένων:
Ορισμός - Τι σημαίνει το Catch Block;
Ένα μπλοκ αλίευσης, στο C #, είναι ένα προαιρετικό μπλοκ κώδικα που εκτελείται όταν δημιουργείται μια εξαίρεση.
Το Block Catch είναι ένα συγκεκριμένο μέρος της εξαιρετικής κατασκευής χειρισμού και υλοποιείται χρησιμοποιώντας τη λέξη-κλειδί "catch" σε συνδυασμό με τις λέξεις-κλειδιά "try" και "finally" και αποτελεί το μέσο για την εφαρμογή διαρθρωμένων χειρισμών εξαίρεσης. Ένα μπλοκ δοκιμής περιλαμβάνει τον προστατευμένο κώδικα που μπορεί να προκαλέσει την εξαίρεση. Περιέχει δηλώσεις που αφορούν εξαιρετικές περιστάσεις και εργάζονται για να ανακάμψουν από τέτοιες απρόβλεπτες συνθήκες.
Το μπλοκ αλιευμάτων αποτελεί το μέσο για τη διαχείριση των εξαιρέσεων. Εάν αυτά δεν έχουν αντιμετωπιστεί, αυτό μπορεί να οδηγήσει σε τερματισμό ολόκληρου του προγράμματος από το χρόνο εκτέλεσης του .NET. Ένα μπλοκ αλίευσης μπορεί να χρησιμοποιηθεί για το χειρισμό οποιωνδήποτε ή συγκεκριμένων εξαιρέσεων.
Η Techopedia εξηγεί το Block Catch
Το μοντέλο χειρισμού εξαιρέσεων του Common Language Runtime (CLR) επιτρέπει περισσότερα από ένα μπλοκ συλλήψεων, καθένα από τα οποία έχει σχεδιαστεί για να χειρίζεται μια συγκεκριμένη εξαίρεση. Κάθε φορά που συμβαίνει μια εξαίρεση, το CLR αναζητά το μπλοκ αλίευσης που χειρίζεται την εξαίρεση. Εάν η τρέχουσα μέθοδος εκτέλεσης δεν περιέχει ένα τέτοιο μπλοκ, η CLR την αναζητά με τη μέθοδο που κάλεσε την τρέχουσα μέθοδο μέχρι τη στοίβα κλήσεων. Εάν δεν υπάρχει ρήτρα αντιστοίχισης για αυτήν την εξαίρεση σε ολόκληρο τον κώδικα, η εκτέλεση του νήματος διακόπτεται και εμφανίζεται στο χρήστη ένα μήνυμα μη εξαγόμενης εξαίρεσης.
Τα παρακάτω είναι μερικές συμβουλές σχετικά με τη χρήση ενός μπλοκ catch:
- Ο τύπος εξαίρεσης πρέπει να προσδιορίζεται στο μπλοκ αλίευσης μόνο αφού έχει καθοριστεί ο λόγος πίσω από την εμφάνιση συγκεκριμένων μη αναστρέψιμων εξαιρέσεων (όπως η αποτυχία του καταστροφικού συστήματος, η κατάχρηση API κ.λπ.) και η ανάκτηση έχει εφαρμοστεί χωρίς να εγκαταλείψει την εφαρμογή σε ασυνεπή ή άκυρη κατάσταση.
- Το μπλοκ αλίευσης πρέπει να τοποθετηθεί έτσι ώστε οι πιο εξειδικευμένες εξαιρέσεις πρέπει να αλιευθούν πριν από τις λιγότερο συγκεκριμένες εξαιρέσεις.
- Το μπλοκ αλίευσης χωρίς παραμέτρους αναφέρεται ως "εξαιρέσεις τρώγοντας", διότι αυτό μπορεί να καταστείλει σοβαρά προβλήματα που είναι δύσκολο να διορθωθούν.
- Το μπλοκ αλίευσης μπορεί να συγκεντρωθεί έτσι ώστε να μπορεί να χειριστεί την εξαίρεση από μια κεντρική τοποθεσία.
- Η εντολή "ρίψη" μπορεί να χρησιμοποιηθεί μέσα στο μπλοκ αλίευσης για το οποίο το ίδιο αντικείμενο εξαίρεσης που πέρασε σε ρίψη μπορεί να περάσει ξανά κατά την ανατροπή.
- Οι μεταβλητές που δηλώνονται σε ένα μπλοκ δοκιμής δεν μπορούν να χρησιμοποιηθούν εκτός αυτής.
- Ο κωδικός δεν θα ξαναρχίσει στην δοκιμαστική ομάδα μετά την εκτέλεση του μπλοκ αλίευσης.
- Η δοκιμή του κώδικα χειρισμού εξαιρέσεων στο μπλοκ αλίευσης είναι απαραίτητη για να αποφευχθεί η σπάσιμο της εφαρμογής.
- Δεν επιτρέπεται η χρήση του μπλοκ αλιευμάτων για τον κώδικα εκκαθάρισης.
- Το μπλοκ συλλήψεως χωρίς παραμέτρους δεν μπορεί να χρησιμοποιηθεί για την αντιμετώπιση εξαιρέσεων που δεν συμμορφώνονται με το Σύστημα Common Language System (αυτές που δεν προέρχονται από το System.Exception).
