namespace cpp {}

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:lib:unexpected

unexpected()

#include <exception>

void unexpected () 

Ruft den unexpected_handler auf.

Die Funktion wird aufgerufen, wenn eine Funktion über eine Ausnahme verlassen wird, die nicht in der throw-Spezifikation der Funktion steht.

Parameter

- -

Ergebnis

Rückgabewert: keiner.

Siehe auch

Beispiel

unexpected.cpp
#include <exception>
#include <iostream>
 
void notstand()
{
  std::cerr << "... wird es auch schief gehen.\n";
  throw std::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;
}
// Bugs ???:
// minGW g++ 2.95 : ...wird schief gehen, danach
                    abnormal program termination () 
//                  (exception handling in experimental stage)
// M$ VC++ 6.0 : ignoriert throw-Deklaration, fängt X-Ausnahme ab
kennen/lib/unexpected.txt · Zuletzt geändert: 2012-04-11 17:24 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki