Skip to content

Std::set terminate

terminate 에게 호출되기 위해 종료 루틴을 설치합니다.

Syntax

terminate_function set_terminate(  
   terminate_function termFunction  
);  

Return

set_terminate 가 등록한 이전의 함수를 가르키는 포인터를 반환합니다. 그러므로 이전 함수는 이후에 복원될 수 있습니다. 만일 이전 함수가 설정되어지지 않았다면, 반환값은 기본 동작을 저장하기 위해 사용될 것입니다; 이 값은 NULL일 수 있습니다.

Remarks

set_terminate 함수는 terminate 에 호출되는 함수로서 termFunction 를 설치합니다. set_terminate 는 C++ 예외 처리와 함께 사용되며 예외가 throw 되기 전에 프로그램에서 어떠한 포인터에서도 호출될 수 있습니다. terminate는 abort를 기본적으로 호출합니다. 사용자는 자신만의 종료 함수를 작성하고 set_terminate를 사용자의 함수 이름과 매개변수로 호출함으로써 이 기본값을 변경할 수 있습니다. terminate 루틴은 set_terminate에 대한 인수로 주어진 마지막 함수를 항상 호출합니다. 필요한 정리 작업이 끝난 후, termFunction 는 프로그램을 끝냅니다. 종료 되지 않는 경우(호출자에게 반환 되는 경우) abort 가 호출됩니다.

WARNING

다중 스레드 환경에서 종료 기능은 각 스레드에 대해 개별적으로 유지됩니다 각 새 스레드에 종료 기능을 설치 해야 합니다. 따라서 각 스레드는 종료 처리를 가집니다.

terminate_function 형식은 EH.H 에 void 을 반환하는 사용자 정의 종료 함수termFunction 로 정의되어 있습니다. 사용자 지정 함수 termFunction 는 인수를 사용할 수 있고 해당 호출자에게 반환 해서는 안 됩니다. 그런 경우, abort 가 호출됩니다. termFunction 내에서 예외는 throws 되지 않을 수도 있습니다.

WARNING

미처리 예외 발생시 예외를 발생시킨 함수의 스택을 정리할 것인가 아닌가는 컴파일러에 따라 다르다.

Example

#include <Turboc.h>
#include <exception>

using namespace std;

void myterm()
{
    puts("처리되지 않은 예외 발생");
    exit(-1);
}

void main()
{
    set_terminate(myterm);
    try {
        throw 1;
    } catch (char * m) {
        // EMPTY.
    }
}

See also

Favorite site