kennen:lib:set_unexpected
no way to compare when less than two revisions
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | kennen:lib:set_unexpected [2012-04-11 17:24] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== set_unexpected() ====== | ||
+ | ''# | ||
+ | |||
+ | <code cpp> | ||
+ | unexpected_handler set_unexpected (unexpected_handler handler) | ||
+ | </ | ||
+ | Hinterlegt einen Verweis auf die Funktion, die aufzurufen ist, wenn eine unerwartete Ausnahme ausgelöst wurde. | ||
+ | |||
+ | Ein '' | ||
+ | * eine Ausnahme des Anwendungsprogramm werfen, | ||
+ | * eine '' | ||
+ | * '' | ||
+ | * '' | ||
+ | ==== Parameter ==== | ||
+ | | '' | ||
+ | Die Funktion muss folgenden Typ besitzen: | ||
+ | |||
+ | <code cpp> | ||
+ | typedef void (*unexpected_handler) (); | ||
+ | </ | ||
+ | ==== Ergebnis ==== | ||
+ | Rückgabewert: | ||
+ | |||
+ | ==== Siehe auch ==== | ||
+ | [[unexpected]]. | ||
+ | |||
+ | ==== Beispiel ==== | ||
+ | <code cpp set_unexpected.cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | void notstand() | ||
+ | { | ||
+ | std::cerr << "... wird es auch schief gehen." | ||
+ | throw bad_exception(); | ||
+ | } | ||
+ | |||
+ | class X {}; | ||
+ | class U {}; | ||
+ | |||
+ | void harmlos() throw(U) | ||
+ | { | ||
+ | throw X(); | ||
+ | } | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | std:: | ||
+ | |||
+ | try | ||
+ | { | ||
+ | std::cout << "Was schiefgehen kann, ..." << std::endl; | ||
+ | harmlos(); | ||
+ | unexpected(); | ||
+ | } | ||
+ | catch(bad_exception& | ||
+ | { | ||
+ | std::cerr << " | ||
+ | } | ||
+ | catch(...) | ||
+ | { | ||
+ | std::cerr << " | ||
+ | } | ||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
kennen/lib/set_unexpected.txt · Zuletzt geändert: 2012-04-11 17:24 von 127.0.0.1