terminate (CRT)

 

Pour obtenir la dernière documentation sur Visual Studio 2017 RC, consultez Documentation Visual Studio 2017 RC.

Appels abort ou une fonction que vous spécifiez à l’aide de set_terminate.

void terminate( void );  

Le terminate fonction 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 la levée d’une exception C++.

  • Une exception est levée par une fonction du destructeur durant le déroulement de pile.

  • Après la levée d’une exception, la pile est corrompue.

terminateappels abort par défaut. Vous pouvez modifier cette valeur par défaut en écrivant votre propre fonction d’arrêt et en appelant set_terminate avec le nom de votre fonction comme argument. terminateappelle la dernière fonction donnée comme argument à set_terminate. Pour plus d’informations, consultez des Exceptions C++ non gérées.

RoutineEn-tête requis
terminate<eh.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité dans l'introduction.

// 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().  

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Routines de gestion des exceptions
abandonner
_set_se_translator
set_terminate
set_unexpected
inattendue

Afficher: