cpp:exception
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | Next revisionBoth sides next revision | ||
cpp:exception [2018/05/18 14:32] – [Κληρονομικότητα] gthanos | cpp:exception [2018/05/18 14:54] – [Stack Unwinding] gthanos | ||
---|---|---|---|
Line 328: | Line 328: | ||
===== Stack Unwinding ===== | ===== Stack Unwinding ===== | ||
+ | |||
+ | Κατά την δημιουργία ενός // | ||
+ | |||
+ | <code cpp StackUnwinding.cpp> | ||
+ | #include < | ||
+ | // called by FFF() | ||
+ | void FFFF() { | ||
+ | std::cout << "Start FFFF\n"; | ||
+ | std::cout << "FFFF throwing int literal exception\n"; | ||
+ | throw 100; | ||
+ | std::cout << "End FFFF\n"; | ||
+ | |||
+ | } | ||
+ | // called by FF() | ||
+ | void FFF() { | ||
+ | std::cout << "Start FFF\n"; | ||
+ | FFFF(); | ||
+ | std::cout << "End FFF\n"; | ||
+ | } | ||
+ | // called by F() | ||
+ | void FF() { | ||
+ | std::cout << "Start FF\n"; | ||
+ | try { | ||
+ | FFF(); | ||
+ | } catch(char) { | ||
+ | std::cerr << "FF caught double exception\n"; | ||
+ | } | ||
+ | std::cout << "End FF\n"; | ||
+ | } | ||
+ | // called by main() | ||
+ | void F() { | ||
+ | std::cout << "Start F\n"; | ||
+ | try { | ||
+ | FF(); | ||
+ | } catch (int) { | ||
+ | | ||
+ | } catch (char) { | ||
+ | | ||
+ | } | ||
+ | std::cout << "End F\n"; | ||
+ | } | ||
+ | |||
+ | int main() { | ||
+ | std::cout << "Start main\n"; | ||
+ | try { | ||
+ | F(); | ||
+ | } catch (int) { | ||
+ | std::cerr << "main caught int exception\n"; | ||
+ | } | ||
+ | std::cout << "End main\n"; | ||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
cpp/exception.txt · Last modified: 2023/05/15 14:01 by gthanos