Condividi tramite


terminate (CRT)

Chiama abort o una funzione specificata utilizzando set_terminate.

void terminate( void );

Note

La funzione terminate viene utilizzata con la gestione delle eccezioni C++ e viene chiamata nei seguenti casi:

  • Non è disponibile un gestore catch corrispondente ad un'eccezione generata C++.

  • Viene generata un'eccezione da una funzione distruttore durante lo svuotamento dello stack.

  • Lo stack è corrotto dopo la generazione di un'eccezione.

terminate chiama abort per impostazione predefinita. È possibile modificare questa impostazione predefinita scrivendo una funzione di terminazione e chiamando set_terminate con il nome della funzione come argomento. terminate chiama l'ultima funzione fornita come argomento di set_terminate. Per ulteriori informazioni, vedere Eccezioni C++ non gestite.

Requisiti

Routine

Intestazione obbligatoria

terminate

<eh.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'Introduzione.

Esempio

// 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);
}
  

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

Vedere anche

Riferimenti

Routine di gestione delle eccezioni

abort

_set_se_translator

set_terminate (CRT)

set_unexpected (CRT)

unexpected (CRT)