Πώς να εφαρμόσετε το Exception Handling στο C ++;



Αυτό το άρθρο θα σας βοηθήσει να καταλάβετε τι είναι ο χειρισμός εξαιρέσεων και πώς να εφαρμόσετε τον χειρισμό εξαιρέσεων στο C ++ με πρακτική επίδειξη.

Εξαιρέσεις είναι ανώμαλες συνθήκες κατά τη διάρκεια του χρόνου εκτέλεσης ή του χρόνου μεταγλώττισης. είναι μια πολύ ουσιαστική ιδέα στο c ++. Αυτό το άρθρο θα σας παρουσιάσει τον χειρισμό εξαιρέσεων στο C ++ μαζί με τους διαφορετικούς τύπους του.

Οι ακόλουθοι δείκτες θα καλυφθούν σε αυτό το άρθρο,





Ας ξεκινήσουμε λοιπόν,

Εξαίρεση χειρισμός σε C ++

Τύποι εξαιρέσεων

Υπάρχουν δύο τύποι εξαιρέσεων,



Εξαίρεση χρόνου εκτέλεσης

Είναι μια εξαίρεση που πιάστηκε κατά τη διάρκεια του χρόνου εκτέλεσης.

Εξαίρεση χρόνου μεταγλώττισης



Είναι μια εξαίρεση που πιάστηκε κατά τη διάρκεια της μεταγλώττισης.

Προχωρώντας με αυτό το άρθρο Εξαίρεσης χειρισμού στο C ++,

Τι είναι ο χειρισμός εξαιρέσεων;

Τα σφάλματα διακόπτουν την κανονική εκτέλεση ενός προγράμματος. Ο χειρισμός εξαιρέσεων είναι πολύ απαραίτητος και είναι η διαδικασία χειρισμού σφαλμάτων ή εξαιρέσεων. Διασφαλίζει ότι η εκτέλεση του προγράμματος δεν επηρεάζεται από τις εξαιρέσεις και τις χειρίζεται αργά χωρίς να προκαλεί κανένα πρόβλημα στην εκτέλεση του προγράμματος.

Όταν εξετάζετε το χειρισμό εξαιρέσεων, υπάρχουν τρεις όροι που σχετίζονται με αυτό,

Δοκιμάστε

Ο κώδικας μέσα σε αυτό το μπλοκ είναι σαν δοκιμαστικός κώδικας, ο οποίος μπορεί να αποτελεί εξαίρεση. Αυτή η εξαίρεση βρίσκεται μέσα στο μπλοκ.

Σύλληψη

Ο κώδικας σε αυτό το μπλοκ εκτελείται όταν ο κωδικός στα μπλοκ δοκιμής ρίχνει μια εξαίρεση.

Βολή

Αυτή η λέξη-κλειδί χρησιμοποιείται για την εξαίρεση όταν συναντάται. Η εξαίρεση αποστέλλεται στον χειριστή εξαιρέσεων.

Σύνταξη:

Ο κωδικός μέσα στο μπλοκ δοκιμής εκτελείται. Εάν δημιουργηθεί σφάλμα, τότε η λέξη-κλειδί ρίχνει την εξαίρεση στον χειριστή εξαιρέσεων, δηλαδή στο μπλοκ catch. Στη συνέχεια, το μπλοκ catch εκτέλεσε τον κώδικα, ο οποίος βρίσκεται μέσα στο μπλοκ του, χειρίζοντας έτσι την εξαίρεση.

Ας ρίξουμε μια ματιά στον δείγμα κώδικα για τον χειρισμό εξαιρέσεων στο c ++

Δείγμα κώδικα

#include χρησιμοποιώντας namespace std try {// code for try throw & ldquoexception & rdquo} catch (εξαίρεση) {// code for catch} int main () {int x = 1 δοκιμάστε {cout<< 'Try Block: '<

Παραγωγή:

Έξοδος - Εξαίρεση χειρισμού σε C ++ - Edureka

Εξήγηση

Αυτό το πρόγραμμα δείχνει χειρισμό εξαιρέσεων. Έχουμε μια μεταβλητή x, στην οποία εκχωρείται μια τιμή 1. Τότε έχουμε την αρχή του μπλοκ δοκιμής. Σε αυτό το μπλοκ, έχουμε μια δήλωση if με την συνθήκη x<10.

Στην περίπτωσή μας, η συνθήκη είναι αληθής καθώς το x είναι ένα. Το πρόγραμμα στη συνέχεια ρίχνει μια εξαίρεση και ο έλεγχος μετατοπίζεται στο μπλοκ. Εκτελούμε τη συνθήκη στο τμήμα σύλληψης και βγούμε από το μπλοκ.

catch (...) {κόστος<< 'Default Exceptionn'<

Τέλος, εκτελούμε τις υπόλοιπες δηλώσεις μετά το πρόγραμμα catch catch και exit.

Μπορεί να υπάρχει πολλαπλή δήλωση αλιευμάτων, ανάλογα με τον αριθμό των πιθανών εξαιρέσεων.

Προχωρώντας με αυτό το άρθρο Εξαίρεσης χειρισμού στο C ++,

Αποτυχία μπλοκαρίσματος

Εξετάστε το προηγούμενο πρόγραμμα, εάν αντί για x η λέξη κλειδί ρίχνει το 'ABC' τότε, η λειτουργία catch δεν θα είναι σε θέση να το χειριστεί. Θα δείξει ένα σφάλμα,

Μπορούμε να έχουμε το μήνυμα σφάλματος που κέρδισε να εμφανίζεται σε τέτοια περίπτωση.

Για να το λύσουμε αυτό, πρέπει να προσθέσουμε μια προεπιλεγμένη λειτουργία catch στον κώδικα για να χειριστούμε τέτοια ζητήματα.

#include χρησιμοποιώντας το namespace std int main () {int x = 1 δοκιμάστε {cout<< 'Try Block: '<

Παραγωγή:

Εξήγηση:

Αυτός ο κωδικός είναι παρόμοιος με τον προηγούμενο. Η μόνη αλλαγή είναι ότι η εξαίρεση που ρίχνεται είναι τύπου char. Αυτό έχει ως αποτέλεσμα η λειτουργία αλίευσης να είναι άχρηστη. Επομένως, έχουμε συμπεριλάβει μια προεπιλεγμένη λειτουργία catch.

Εάν καμία από τις δηλώσεις catch δεν ταιριάζει, τότε εκτελείται η προεπιλεγμένη catch.

Πολλαπλά μπλοκ σύλληψης

Μπορεί να υπάρχουν πολλά μπλοκ παγίδευσης ενός μπλοκ δοκιμής.

Εδώ είναι ένα παράδειγμα,

# συμπερίληψη χρησιμοποιώντας χώρο ονομάτων std int test (int a) {try {if (a<0) throw a else throw 'a' }catch(int a){ cout<<'Caught an integer: ' << a<

Παραγωγή:

Εξήγηση:

Στον παραπάνω κώδικα, χρησιμοποιούμε πολλές δηλώσεις αλιευμάτων. Έχουμε μια δοκιμή λειτουργίας που δημιουργεί μια εξαίρεση. Στην πρώτη περίπτωση δοκιμής, η τιμή είναι 10. Δεδομένου ότι το 10 είναι μεγαλύτερο από το μηδέν, «a» ο χαρακτήρας ρίχνεται και συλλαμβάνεται από τη δεύτερη συνάρτηση catch.

Στη δεύτερη περίπτωση, η τιμή είναι μικρότερη από 0, έτσι η τιμή -1 ρίχνεται και συλλαμβάνεται με ακέραια εξαίρεση

πώς να αποφύγετε το αδιέξοδο στην Ιάβα

Εξαίρεση Χειρισμός στη βασική και παράγωγη κλάση:

Εάν οι εξαιρέσεις της βάσης και της παράγωγης κλάσης έχουν παγιδευτεί, τότε το αλίευμα της παράγωγης κλάσης πρέπει να εκτελεστεί πριν από την κατηγορία βάσης.

Ακολουθούν ορισμένες εξαιρέσεις:

  • std :: εξαίρεση

  • logic_error

  • σφάλμα χρόνου εκτέλεσης

  • κακό_αλλόκο

  • κακή εκπομπή

  • κακή εξαίρεση

Με αυτό φτάνουμε στο τέλος αυτού του ιστολογίου στο 'Exception Handling In C ++'. Ελπίζω να βρήκατε αυτό το ενημερωτικό και χρήσιμο, μείνετε συντονισμένοι για περισσότερα μαθήματα σχετικά με παρόμοια θέματα. Μπορείτε επίσης να δείτε το εκπαιδευτικό μας πρόγραμμα to να αποκτήσετε σε βάθος γνώσεις σχετικά με το jQuery μαζί με τις διάφορες εφαρμογές του, μπορείτε για ζωντανή διαδικτυακή εκπαίδευση με 24ωρη υποστήριξη και πρόσβαση σε όλη τη διάρκεια ζωής.

Έχετε μια ερώτηση για εμάς; Αναφέρετέ τα στην ενότητα σχολίων αυτού του ιστολογίου και θα επικοινωνήσουμε μαζί σας.