kennen:lib:set_unexpected
Inhaltsverzeichnis
set_unexpected()
#include
<exception>
unexpected_handler set_unexpected (unexpected_handler handler)
Hinterlegt einen Verweis auf die Funktion, die aufzurufen ist, wenn eine unerwartete Ausnahme ausgelöst wurde.
Ein unexpected_handler
sollte eine der folgenden Aktionen ausführen:
- eine Ausnahme des Anwendungsprogramm werfen,
- eine
bad_exception
-Ausnahme werfen, terminate()
aufrufen,abort()
oderexit()
aufrufen.
Parameter
handler | Adresse einer Funktion |
Die Funktion muss folgenden Typ besitzen:
typedef void (*unexpected_handler) ();
Ergebnis
Rückgabewert: die Adresse der bisherigen Behandlungsroutine.
Siehe auch
Beispiel
- set_unexpected.cpp
#include <exception> #include <iostream> void notstand() { std::cerr << "... wird es auch schief gehen." << endl; throw bad_exception(); } class X {}; class U {}; void harmlos() throw(U) // wirklich ??? { throw X(); } int main() { std::unexpected_handler old = std::set_unexpected(notstand); try { std::cout << "Was schiefgehen kann, ..." << std::endl; harmlos(); unexpected(); } catch(bad_exception& ) { std::cerr << "\t(Murphy's Gesetz)\n"; } catch(...) { std::cerr << "...und zwar anders, als man erwartet.\n"; } return 0; }
kennen/lib/set_unexpected.txt · Zuletzt geändert: 2012-04-11 17:24 von 127.0.0.1