Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Initialisierung

&pagelevel(4)&pagelevel

Ausnahmen, die während der Initialisierung von globalen Objekten „geworfen“ werden (throw), bedingen den Aufruf von terminate und den Abbruch des Programms ohne Diagnosemeldungen. Mit der Funktion set_terminate können Sie eine Funktion vorsehen, die im Fall eines unvorgesehenen Programmendes als Ausnahmebehandlungsroutine fungiert. Diese Funktion muss jedoch vor der Initialisierung der globalen Objekte aufgerufen werden.

Das C++-Laufzeitsystem bietet folgende Lösung an, um Funktionen anzugeben, die als „initial current handler“ benutzt werden:

  • Sie können eine eigene __initial_terminate_handler-Funktion vom Typ terminate_handler zu Ihrem Programm binden. Diese Funktion wird im C++-Laufzeitsystem als weak deklariert. Wenn __initial_terminate_handler definiert ist, wird die Funktion als „initial handler“ für die Ausnahmebehandlung aufgerufen.

  • Sie können auch die Funktionen __initial_unexpected_handler und ___initial_new_handler mit demselben Mechanismus verwenden. Diese Routinen haben den Typ unexpected_handler bzw. new_handler.

Für die Schnittstellen __initial_terminate_handler und __initial_unexpected_handler muss die Header-Datei <exception> inkludiert werden, für die Schnittstelle __initial_new_handler die Header-Datei <new>.