namespace cpp

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:lib:set_unexpected

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() oder exit() 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 (Externe Bearbeitung)