terminate (CRT)
Appelle abort ou une fonction que vous spécifiez en utilisant set_terminate.
void terminate( void );
Notes
La fonction terminate est utilisée avec la gestion des exceptions C++ et est appelée dans les cas suivants :
Un gestionnaire CATCH correspondant est introuvable pour une exception levée C++.
Une exception est levée par une fonction destructrice pendant le déroulement de pile.
La pile est endommagée après avoir levé une exception.
Par défaut, terminate appelle abort. 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 son argument. La routine terminate appelle toujours la dernière fonction donnée comme argument à set_terminate. Pour plus d'informations, consultez Exceptions C++ non gérées.
Configuration requise
Routine |
En-tête requis |
---|---|
terminate |
<EH.H> |
Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.
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);
}
Équivalent .NET Framework
Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.