terminate
(CRT)
Appelle abort
ou une fonction que vous spécifiez à l’aide de set_terminate
.
Syntaxe
void terminate( void );
Notes
La fonction terminate
est utilisée avec la gestion des exceptions C++ et est appelée dans les cas suivants :
Impossible de trouver un gestionnaire catch correspondant pour une exception C++ levée.
Exception levée par une fonction destructeur pendant un désempilage.
Pile endommagée après la levée d’une exception.
terminate
appelle abort
par défaut. Vous pouvez modifier ce comportement par défaut en écrivant votre propre fonction d’arrêt et en appelant set_terminate
avec le nom de votre fonction comme argument. terminate
appelle la dernière fonction transmise comme argument à set_terminate
. Pour plus d’informations, consultez Exceptions C++ non gérées.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Spécifications
Routine | En-tête requis |
---|---|
terminate |
<eh.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// 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().
Voir aussi
Routines de gestion des exceptions
abort
_set_se_translator
set_terminate
set_unexpected
unexpected