cpp:exception
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
cpp:exception [2019/05/15 07:07] – [Δημιουργία και διαχείριση της εξαίρεσης] gthanos | cpp:exception [2021/05/07 14:49] – gthanos | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Δημιουργία | + | ====== Δημιουργία |
Ας εξετάσουμε την κλάση **Vector** που είδαμε στην ενότητα της υπερφόρτωση τελεστών. Ο προσδιοριστής //nothrow// σε συνδυασμό με τον τελεστή **new** μας υποχρεώνει να ελέγξουμε την επιστρεφόμενη τιμή του τελεστή **new** για να δούμε έαν έχει αποτύχει η διαδικασία δέσμευσης μνήμης ή όχι και στην περίπτωση που έχουμε αποτυχία τερματίζουμε το πρόγραμμα. | Ας εξετάσουμε την κλάση **Vector** που είδαμε στην ενότητα της υπερφόρτωση τελεστών. Ο προσδιοριστής //nothrow// σε συνδυασμό με τον τελεστή **new** μας υποχρεώνει να ελέγξουμε την επιστρεφόμενη τιμή του τελεστή **new** για να δούμε έαν έχει αποτύχει η διαδικασία δέσμευσης μνήμης ή όχι και στην περίπτωση που έχουμε αποτυχία τερματίζουμε το πρόγραμμα. | ||
Line 35: | Line 35: | ||
int & | int & | ||
- | if(pos>=length()) { | + | if(pos>=size) { |
cerr << " | cerr << " | ||
| | ||
Line 107: | Line 107: | ||
Vector v(size); | Vector v(size); | ||
} catch(std:: | } catch(std:: | ||
- | cout << " | + | |
- | continue; | + | |
+ | continue; | ||
+ | } | ||
+ | exit(-1); | ||
} | } | ||
for(int i=0; i<size; i++) | for(int i=0; i<size; i++) | ||
Line 117: | Line 120: | ||
<WRAP tip 80% center round> | <WRAP tip 80% center round> | ||
- | Στο παραπάνω απλό παράδειγμα είναι προφανές ότι είναι πιο απλό να ελέγξει κανείς το μέγεθος της παραμέτρου //size// πριν καλέσει τον κατασκευαστή. Σε αυτή την περίπτωση, | + | Στο παραπάνω απλό παράδειγμα είναι προφανές ότι είναι πιο απλό να ελέγξει κανείς το μέγεθος της παραμέτρου //size// πριν καλέσει τον κατασκευαστή. Σε αυτή την περίπτωση, |
</ | </ | ||
Line 199: | Line 202: | ||
} | } | ||
</ | </ | ||
- | πιάνει όλους τους τύπους | + | διαχειρίζεται όλους τους τύπους |
+ | |||
+ | Εφόσον, | ||
</ | </ | ||
cpp/exception.txt · Last modified: 2023/05/15 14:01 by gthanos