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. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the 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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für