C++ Try-Catch-Finally

C Try Catch Finally



Η C++ παρέχει τη μέθοδο 'try-catch' για τον χειρισμό των εξαιρέσεων. Όταν εμφανίζεται μια εξαίρεση στο πρόγραμμα C++, αυτές οι μέθοδοι 'try-catch' βοηθούν στη μετατόπιση του ελέγχου από το ένα μέρος του κώδικα του προγράμματος στο άλλο. Εξαίρεση αποτελεί ένα σφάλμα που εμφανίζεται ενώ εκτελείται ένα πρόγραμμα. Όταν μια έκτακτη κατάσταση, όπως η προσπάθεια διαίρεσης με το μηδέν, εμφανίζεται κατά την εκτέλεση ενός προγράμματος, δημιουργείται μια εξαίρεση C++ και χειριζόμαστε αυτήν την κατάσταση χρησιμοποιώντας απλώς τη μέθοδο 'try-catch' στους κώδικές μας. Περιέχει τρεις λέξεις-κλειδιά: «δοκιμάζω», «πιάω» και «ρίχνω». Η λέξη-κλειδί 'ρίξε' χρησιμοποιείται για να ρίξει την εξαίρεση σε άλλα μέρη του κώδικα. Ο προγραμματισμός της C++ δεν μας διευκολύνει με τη λέξη-κλειδί «επιτέλους», αλλά μπορούμε να χρησιμοποιήσουμε τις λέξεις-κλειδιά «δοκιμάζω», «πιάω» και «ρίχνω» σε κώδικες C++.

Παράδειγμα 1:

Το 'iostream' περιλαμβάνεται εδώ, το αρχείο κεφαλίδας στο οποίο δηλώνονται πολλές συναρτήσεις. Χρησιμοποιούμε αυτές τις συναρτήσεις που δηλώνονται σε αυτό το αρχείο κεφαλίδας στον κώδικά μας, επομένως συμπεριλαμβάνουμε αυτό το αρχείο κεφαλίδας. Μετά από αυτό, έχουμε το 'std' που τοποθετείται εδώ καθώς συναρτήσεις όπως 'cin' και 'cout' ορίζονται επίσης σε αυτό. Δεν χρειάζεται να πληκτρολογήσουμε 'std' με όλες αυτές τις συναρτήσεις εάν προσθέσουμε το 'namespace std' στην αρχή του κώδικά μας. Μετά από αυτό, η συνάρτηση 'main()' καλείται εδώ, η οποία αναφέρεται επίσης ως ο κώδικας προγράμματος οδήγησης του προγράμματος C++.

Στη συνέχεια, χρησιμοποιούμε εδώ τη λέξη-κλειδί «δοκιμάστε» στην οποία αρχικοποιούμε το «my_num1» με την τιμή «35». Είναι η μεταβλητή τύπου δεδομένων 'int' εδώ. Τώρα, τοποθετούμε αυτήν τη μεταβλητή μέσα στο 'if' και τοποθετούμε μια συνθήκη που λέει ότι το 'my_num1' πρέπει να είναι μεγαλύτερο ή ίσο με '98'. Εάν η δεδομένη συνθήκη ικανοποιείται, προχωρά στο 'if' και εκτελεί την πρόταση που είναι γραμμένη εδώ. Χρησιμοποιούμε το 'cout' και εισάγουμε ένα μήνυμα για να εμφανίζεται όταν ικανοποιείται η συνθήκη.







Μετά από αυτό, χρησιμοποιούμε τη λέξη-κλειδί «ρίξω» αφού τοποθετήσουμε το «άλλο». Σε αυτήν τη λέξη-κλειδί 'ρίψη', περνάμε το 'my_num1' ως παράμετρο. Προσθέτουμε το τμήμα 'catch' κάτω από αυτό. Εισάγουμε το 'my_num2' ως την παράμετρο του 'catch()' και μετά χρησιμοποιούμε το 'cout' ξανά μέσα σε αυτό το τμήμα 'catch'. Αυτό το τμήμα εκτελείται μόνο όταν υπάρχει εξαίρεση στο τμήμα 'δοκιμάστε'.



Κωδικός 1:



#include
χρησιμοποιώντας χώρο ονομάτων std ;
ενθ κύριος ( ) {
δοκιμάστε {
ενθ my_num1 = 35 ;
αν ( my_num1 >= 98 ) {
cout << 'Η πρόσβαση παρέχεται εδώ.' ;
} αλλού {
βολή ( my_num1 ) ;
}
}
σύλληψη ( ενθ my_num2 ) {
cout << 'Η πρόσβαση δεν επιτρέπεται εδώ.' << endl ;
cout << 'Ο αριθμός είναι:' << my_num2 ;
}
ΕΠΙΣΤΡΟΦΗ 0 ;
}

Παραγωγή:
Ο αριθμός που πληκτρολογήσαμε είναι '35' που είναι μικρότερος από '98'. Έτσι, η εξαίρεση εμφανίζεται εκεί και εμφανίζεται το τμήμα 'catch()'. Δεν επιτρέπεται η πρόσβαση στο τμήμα 'δοκιμάστε'.





Παράδειγμα 2:

Τοποθετούμε το αρχείο κεφαλίδας “iostream” εδώ και το “namespace std”. Μετά από αυτό, δημιουργούμε μια συνάρτηση «division()» στην οποία τοποθετούμε δύο παραμέτρους που είναι ο «αριθμητής» και ο «παρονομαστής» του τύπου δεδομένων «int». Ορίζουμε τον τύπο δεδομένων αυτής της συνάρτησης «διαίρεσης» σε «διπλό».



Κάτω από αυτό, προσθέτουμε το 'if()' στο οποίο προσθέτουμε την συνθήκη ότι ο παρονομαστής είναι ίσος με μηδέν. Μετά από αυτό, χρησιμοποιούμε τη λέξη-κλειδί 'ρίψη' και πληκτρολογούμε ένα μήνυμα εκεί. Αυτό το μήνυμα αποδίδεται κάθε φορά που εμφανίζεται η εξαίρεση σε αυτόν τον κώδικα σύμφωνα με την συνθήκη. Κάτω από αυτό, χρησιμοποιούμε τη λέξη-κλειδί 'επιστροφή' στην οποία τοποθετούμε 'αριθμητής/παρονομαστής'. Άρα, επιστρέφει το αποτέλεσμα της διαίρεσης. Τώρα, καλείται η συνάρτηση 'main()'.

Μετά από αυτό, οι μεταβλητές 'num1' και 'num2' αρχικοποιούνται ως μεταβλητές 'int' και εκχωρούνται '89' και '0' σε αυτές αντίστοιχα. Στη συνέχεια, αρχικοποιούμε το «αποτέλεσμα» του «διπλού» τύπου δεδομένων. Εδώ, χρησιμοποιούμε τη λέξη-κλειδί 'δοκιμάστε'. Σε αυτό το μέρος, προσθέτουμε αυτήν τη μεταβλητή «αποτέλεσμα» και εκχωρούμε τη συνάρτηση «διαίρεση()» σε αυτήν τη μεταβλητή. Περνάμε δύο παραμέτρους σε αυτή τη συνάρτηση: 'num1' και 'num2'. Κάτω από αυτό, εμφανίζουμε το «αποτέλεσμα» που παίρνουμε μετά την εφαρμογή της συνάρτησης «διαίρεση()». Μετά από αυτό, χρησιμοποιούμε επίσης το 'catch' και τοποθετούμε το 'const char*msg' για να εμφανίσουμε το μήνυμα που προσθέσαμε προηγουμένως.

Κωδικός 2:

#include
χρησιμοποιώντας χώρο ονομάτων std ;
διπλό διαίρεση ( ενθ αριθμητής, ενθ παρονομαστής ) {
αν ( παρονομαστής == 0 ) {
βολή 'Διαίρεση με το μηδέν δεν είναι δυνατή εδώ!' ;
}
ΕΠΙΣΤΡΟΦΗ ( αριθμητής / παρονομαστής ) ;
}
ενθ κύριος ( ) {
ενθ num1 = 89 ;
ενθ num2 = 0 ;
διπλό αποτέλεσμα = 0 ;
δοκιμάστε {
αποτέλεσμα = διαίρεση ( num1, num2 ) ;
cout << αποτέλεσμα << endl ;
} σύλληψη ( συνθ απανθρακώνω * μήνυμα ) {
cerr << μήνυμα << endl ;
}
ΕΠΙΣΤΡΟΦΗ 0 ;
}

Παραγωγή:
Ο αριθμός που εισάγαμε προηγουμένως ως παρονομαστή είναι '0'. Έτσι, η εξαίρεση εμφανίζεται στον κώδικα και εμφανίζει το δεδομένο μήνυμα.

Παράδειγμα 3:

Εδώ δημιουργείται η συνάρτηση “multiplication()” στην οποία τοποθετούμε την “τιμή” και τον “πολλαπλασιαστή” ως τις παραμέτρους του τύπου δεδομένων “int”. Στη συνέχεια, χρησιμοποιούμε το «αν» στο οποίο προσθέτουμε μια συνθήκη πολλαπλασιαστή που ισούται με μηδέν. Στη συνέχεια, το 'ρίξε' τοποθετείται όπου προσθέτουμε μια δήλωση. Στη συνέχεια, έχουμε την «επιστροφή» όπου τοποθετούμε τις μεταβλητές «τιμή * πολλαπλασιαστή» που δηλώσαμε προηγουμένως. Έτσι, επιστρέφει το αποτέλεσμα πολλαπλασιασμού εδώ.

Μετά από αυτό, καλούμε την 'main()' όπου δηλώνουμε τις 'int value1' και 'int value2' με τις τιμές '34' και '0', αντίστοιχα. Η 'int m_res' δηλώνεται επίσης και στη συνέχεια ονομάζεται η συνάρτηση 'πολλαπλασιασμός()' εδώ. Μετά την εκτέλεση αυτής της λειτουργίας, το αποτέλεσμα αποθηκεύεται τώρα στη μεταβλητή 'm_res' και στη συνέχεια εμφανίζεται. Στη συνέχεια, χρησιμοποιούμε τη συνάρτηση 'catch' και εισάγουμε το 'const char*msg' για να εμφανίσουμε το μήνυμα που προσθέσαμε προηγουμένως στο τμήμα 'ρίψη'.

Κωδικός 3:

#include
χρησιμοποιώντας χώρο ονομάτων std ;
διπλό πολλαπλασιασμός ( ενθ αξία , ενθ πολλαπλασιαστής ) {
αν ( πολλαπλασιαστής == 0 ) {
βολή 'Δεν πολλαπλασιάζουμε την τιμή με το μηδέν!' ;
}
ΕΠΙΣΤΡΟΦΗ ( αξία * πολλαπλασιαστής ) ;
}
ενθ κύριος ( ) {
ενθ τιμή 1 = 3. 4 ;
ενθ τιμή 2 = 0 ;
ενθ m_res ;
δοκιμάστε {
m_res = πολλαπλασιασμός ( τιμή 1, τιμή 2 ) ;
cout << m_res << endl ;
} σύλληψη ( συνθ απανθρακώνω * μήνυμα ) {
cerr << μήνυμα << endl ;
}
ΕΠΙΣΤΡΟΦΗ 0 ;
}

Παραγωγή :
Δεδομένου ότι η τιμή που εισαγάγαμε προηγουμένως έχει '0' ως πολλαπλασιαστή, ο κωδικός έχει μια εξαίρεση που προκαλεί την εμφάνιση της ειδοποίησης εδώ.

Παράδειγμα 4:

Εδώ, χτίζουμε τη συνάρτηση “multiply()” και περνάμε τα “number1” και “number2” ως παραμέτρους του τύπου δεδομένων “int”. Στη συνέχεια, χρησιμοποιούμε τον τελεστή «αν» για να προσθέσουμε μια συνθήκη σε αυτόν που είναι ένας πολλαπλασιαστής που είναι μικρότερος ή ίσος με το μηδέν. Μετά από αυτό, προστίθεται η δήλωση όπου υποτίθεται ότι είναι η 'ρίψη'. Το αποτέλεσμα πολλαπλασιασμού επιστρέφεται στη συνέχεια στην ενότητα 'επιστροφή' όπου εισάγουμε τη μεταβλητή 'number1 * number2' που δηλώσαμε προηγουμένως.

Στη συνέχεια, καλούμε τη συνάρτηση 'main()' και εκχωρούμε τις τιμές '34' και '12' σε 'int newNumber1' και 'int newNumber2', αντίστοιχα. Εδώ, η συνάρτηση “multiply()” καλείται μετά τη δήλωση του “int mResult”. Τώρα, το αποτέλεσμα αυτής της συνάρτησης αποθηκεύεται στη μεταβλητή 'mResult' και αποδίδεται στη συνέχεια. Στη συνέχεια χρησιμοποιούμε τη συνάρτηση «catch» και προσθέτουμε το «const char*msg» για να εμφανίσουμε το μήνυμα που γράψαμε στην ενότητα «ρίψη».

Κωδικός 4:

#include
χρησιμοποιώντας χώρο ονομάτων std ;
διπλό πολλαπλασιάζω ( ενθ νούμερο 1 , ενθ νούμερο 2 ) {
αν ( νούμερο 2 <= 0 ) {
βολή 'Δεν πολλαπλασιάζουμε την τιμή με μηδέν ή αρνητική τιμή!' ;
}
ΕΠΙΣΤΡΟΦΗ ( νούμερο 1 * νούμερο 2 ) ;
}
ενθ κύριος ( ) {
ενθ νέοΑριθμός1 = 3. 4 ;
ενθ newNum2 = 12 ;
ενθ mΑποτέλεσμα ;
δοκιμάστε {
mΑποτέλεσμα = πολλαπλασιάζω ( newNum1, newNum2 ) ;
cout << 'Το αποτέλεσμα του πολλαπλασιασμού είναι' << mΑποτέλεσμα << endl ;
}
σύλληψη ( συνθ απανθρακώνω * μήνυμα ) {
cerr << μήνυμα << endl ;
}
ΕΠΙΣΤΡΟΦΗ 0 ;
}

Παραγωγή:
Η τιμή που προσθέτουμε είναι '12' στην οποία προσθέτουμε τη συνθήκη. Άρα, εκτελείται η συνάρτηση πολλαπλασιασμού () αφού η συνθήκη δεν είναι αληθής. Εμφανίζεται το αποτέλεσμα του πολλαπλασιασμού. Το μέρος 'δοκιμάστε' εκτελείται εδώ.

συμπέρασμα

Η έννοια του «try-catch» και οι κωδικοί σε αυτόν τον οδηγό μελετώνται λεπτομερώς. Εξερευνήσαμε διεξοδικά αυτήν την έννοια «try-catch» και δείξαμε πώς λειτουργεί στον προγραμματισμό C++. Ορίσαμε ότι ο όρος 'ρίψη' δημιουργεί μια εξαίρεση όταν εντοπίζεται ένα σφάλμα που μας επιτρέπει να γράψουμε τον μοναδικό μας κώδικα. Χρησιμοποιώντας την έκφραση 'catch', μπορούμε να καθορίσουμε ένα μπλοκ κώδικα που θα εκτελεστεί εάν εμφανιστεί μια εξαίρεση στο τμήμα 'try'.