다음을 통해 공유


처리 되지 않은 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 라고 합니다.

참고 항목

참조

C + + 예외 처리