terminate
(CRT)
Ruft abort
oder eine Funktion auf, die Sie mit set_terminate
angeben.
Syntax
void terminate( void );
Hinweise
Die terminate
-Funktion wird mit der C++-Ausnahmebehandlung verwendet und in den folgenden Fällen aufgerufen:
Für eine ausgelöste C++-Ausnahme kann kein passender Catch-Handler gefunden werden.
Eine Ausnahme wird während der Stapelentladung von einer Destruktorfunktion ausgelöst.
Der Stapel ist nach dem Auslösen einer Ausnahme beschädigt.
terminate
ruft standardmäßig abort
auf. Sie können dieses Standardverhalten ändern, indem Sie eine benutzerdefinierte Beendigungsfunktion schreiben und set_terminate
mit dem Namen Ihrer Funktion als Argument aufrufen. Die terminate
-Routine ruft immer die letzte Funktion auf, die für set_terminate
als Argument angegeben wurde. Weitere Informationen finden Sie unter Nicht behandelte C++-Ausnahmen.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Anforderungen
Routine | Erforderlicher Header |
---|---|
terminate |
<eh.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_terminate.cpp
// compile with: /EHsc
#include <eh.h>
#include <process.h>
#include <iostream>
using namespace std;
void term_func();
int main()
{
int i = 10, j = 0, result;
set_terminate( term_func );
try
{
if( j == 0 )
throw "Divide by zero!";
else
result = i/j;
}
catch( int )
{
cout << "Caught some integer exception.\n";
}
cout << "This should never print.\n";
}
void term_func()
{
cout << "term_func() was called by terminate().\n";
// ... cleanup tasks performed here
// If this function does not exit, abort is called.
exit(-1);
}
term_func() was called by terminate().
Siehe auch
Ausnahmebehandlungsroutinen
abort
_set_se_translator
set_terminate
set_unexpected
unexpected