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 [2018/05/19 03:29] – [Κληρονομικότητα] gthanos | cpp:exception [2018/05/19 06:50] – [Κληρονομικότητα] gthanos | ||
---|---|---|---|
Line 196: | Line 196: | ||
===== Κληρονομικότητα ===== | ===== Κληρονομικότητα ===== | ||
- | Ας υποθέσουμε ότι έχουμε τη σχέση κληρονομικότητας μεταξύ των κλάσεων **IDException** και **CountedIDException**, όπως παρακάτω: | + | Ας υποθέσουμε ότι έχουμε τη σχέση κληρονομικότητας μεταξύ των κλάσεων **BaseException** και **DerivedException**, όπως παρακάτω: |
<code cpp BaseException.h> | <code cpp BaseException.h> | ||
Line 331: | Line 331: | ||
</ | </ | ||
+ | <WRAP tip 80% center round> | ||
+ | Είναι προφανές ότι η σειρά των //catch blocks// θα έπρεπε να είναι η αντίστροφη (πρώτα το //catch block// για την αναφορά τύπου // | ||
+ | </ | ||
===== Stack Unwinding ===== | ===== Stack Unwinding ===== | ||
Line 386: | Line 389: | ||
</ | </ | ||
+ | Το αποτέλεσμα που εκτυπώνεται στην οθόνη είναι το εξής: | ||
+ | < | ||
+ | Start main | ||
+ | Start F | ||
+ | Start FF | ||
+ | Start FFF | ||
+ | Start FFFF | ||
+ | FFFF throwing int literal exception | ||
+ | F caught int exception | ||
+ | End F | ||
+ | End main | ||
+ | </ | ||
+ | |||
+ | H εξέλιξη του //program stack// στο παρακάτω πρόγραμμα δίνεται στο παρακάτω διάγραμμα. Παρατηρήστε ότι το exception παράγεται στη συνάρτηση **FFFF()**, αλλά " | ||
+ | {{ : | ||
cpp/exception.txt · Last modified: 2023/05/15 14:01 by gthanos