처리 되지 않은 C++ 예외
경우 일치 하는 처리기 (또는 줄임표 (...) catch 처리기)는 현재 예외에 대해 미리 정의 된을 찾을 수 없습니다 terminate 런타임 함수를 호출 합니다.(또한 명시적으로 호출할 수 있습니다 terminate 처리기 중 하나입니다.) 기본 작업의 terminate 를 호출 하는 abort.필요한 경우 terminate 응용 프로그램을 종료 하기 전에 프로그램을 하는 다른 함수를 호출 하려면 호출을 set_terminate 함수를 단일 인수로 호출 하는 함수의 이름입니다.호출할 수 있는 set_terminate 프로그램을 언제 든 지.terminate 루틴을 항상 인수로 주어진 마지막 함수 호출 set_terminate.
예제
다음 예제에서는 throw는 char * 예외 형식의 예외를 catch 하도록 지정 된 처리기를 포함 하지 않지만 char *.호출을 set_terminate 지시 terminate 호출 하려면 term_func.
// 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;
}
Output
term_func was called by terminate.
term_func 함수 해야 종료 프로그램 또는 현재 스레드의 이상적으로 호출 하 여 exit.하지 않는, 대신 해당 호출자에 게 반환 하면 abort 라고 합니다.