다음을 통해 공유


set_unexpected(CRT)

unexpected로 호출될 자체 종료 함수를 설치하세요.

unexpected_function set_unexpected(
   unexpected_function unexpFunction 
);

매개 변수

  • unexpFunction
    unexpected 함수를 대체하기 위해 작성한 함수에 대해 포인터하세요.

반환 값

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

설명

set_unexpected 함수는 unexpected 에 호출되는 함수로서 unexpFunction 를 설치합니다. unexpected는 현재 c++ 예외 처리 구현에서 사용 되지 않습니다. unexpected_function 형식은 EH.H 에 void을 반환하는 사용자 정의 종료 함수인 unexpFunction에 대한 포인터로 정의되어 있습니다. 사용자 지정 unexpFunction 함수는 해당 호출자에게 반환하지 않아야 합니다.

typedef void ( *unexpected_function )( );

기본적으로, unexpected는 terminate를 호출합니다. set_unexpected를 사용자의 함수 이름과 매개변수로 호출하고 사용자의 종료 함수를 작성함으로써 이 기본동작을 변경할 수 있습니다. unexpected 루틴은 set_unexpected에 대한 인수로 주어진 마지막 함수를 항상 호출합니다.

set_terminate을 호출하여 설치된 사용자 지정 종료 함수와 달리 unexpFunction내에서 예외가 throw될 수 있습니다.

다중 스레드 환경에서 unexpected 함수들은 각 스레드에 대해 개별적으로 유지됩니다. 각각의 새로운 스레드에는 unexpected 함수를 설치 해야 합니다. 따라서 각 스레드는 unexpected 처리를 담당합니다.

현재 Microsoft c + + 예외 처리 구현에서는 unexpected가 기본으로 terminate를 호출하고 예외 처리 런타임 라이브러리에 의해서는 호출 되지 않습니다. unexpected를 terminate대신 호출하는 것에 대해 특별한 이점은 없습니다.

이것은 동적 링크된 DLL 또는 EXE에 대해 단일 set_unexpected 처리기 입니다. set_unexpected 를 호출하는 경우에도 사용자의 처리기는 다른 것으로 교체되거나 다른 DLL 또는 EXE 로 처리기 설정을 교체할 수도 있습니다.

요구 사항

루틴

필수 헤더

set_unexpected

<eh.h>

호환성에 대한 자세한 내용은 소개 단원의 호환성 부분을 참조하십시오.

해당 .NET Framework 항목

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

참고 항목

참조

예외 처리 루틴

abort

_get_unexpected

set_terminate(CRT)

terminate(CRT)

unexpected(CRT)