다음을 통해 공유


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를 반환하는 사용자 정의 unexpected 함수 unexpFunction에 대한 포인터로 정의됩니다. 사용자 지정 unexpFunction 함수는 해당 호출자에게 반환되어서는 안 됩니다.

typedef void ( *unexpected_function )( );

기본적으로 unexpectedterminate를 호출합니다. 종료 함수를 직접 작성하고 함수 이름을 인수로 사용해 set_unexpected를 호출하면 이 기본 동작을 변경할 수 있습니다. unexpectedset_unexpected에 대한 인수로 지정된 마지막 함수를 호출합니다.

set_terminate 호출을 통해 설치한 사용자 지정 종료 함수와는 달리, unexpFunction 내에서 예외를 throw할 수 있습니다.

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

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

동적으로 연결된 모든 DLL 또는 EXE에 대한 단일 set_unexpected 처리기가 있습니다. 호출 set_unexpected 하는 경우 처리기가 다른 DLL 또는 EXE로 설정된 처리기를 대체할 수도 있습니다.

요구 사항

루틴에서 반환된 값 필수 헤더
set_unexpected <eh.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

참고 항목

예외 처리 루틴
abort
_get_unexpected
set_terminate
terminate
unexpected