Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ha az aktuális kivételhez nem található egyező kezelő (vagy három pontkezelő catch ), a rendszer meghívja az előre definiált futásidejű függvényt terminate . (Bármelyik kezelőben explicit módon is hívhat terminate .) Az alapértelmezett művelet a terminate hívás abort. Ha az alkalmazásból való kilépés előtt más függvényt is meg szeretne terminate hívni a programban, hívja meg a set_terminate függvényt annak a függvénynek a nevével, amelyet egyetlen argumentumként szeretne meghívni. A program bármely pontján hívhat set_terminate . A terminate rutin mindig argumentumként megadott utolsó függvényt hívja meg.set_terminate
példa
Az alábbi példa kivételt char * jelez, de nem tartalmaz olyan kezelőt, amely a típuskivételek char *fogására van kijelölve. A hívás a set_terminate hívásra term_funcutasítterminate.
// exceptions_Unhandled_Exceptions.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
void term_func() {
cout << "term_func was called by terminate." << endl;
exit( -1 );
}
int main() {
try
{
set_terminate( term_func );
throw "Out of memory!"; // No catch handler for this exception
}
catch( int )
{
cout << "Integer exception raised." << endl;
}
return 0;
}
Kimenet
term_func was called by terminate.
A term_func függvénynek meg kell szüntetnie a programot vagy az aktuális szálat, ideális esetben meghívással exit. Ha nem, és ehelyett visszatér a hívóhoz, abort a rendszer meghívja.
Lásd még
Modern C++ ajánlott eljárások kivételekhez és hibakezeléshez