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 )( );
기본적으로 unexpected
는 terminate
를 호출합니다. 종료 함수를 직접 작성하고 함수 이름을 인수로 사용해 set_unexpected
를 호출하면 이 기본 동작을 변경할 수 있습니다. unexpected
는 set_unexpected
에 대한 인수로 지정된 마지막 함수를 호출합니다.
set_terminate
호출을 통해 설치한 사용자 지정 종료 함수와는 달리, unexpFunction
내에서 예외를 throw할 수 있습니다.
다중 스레드 환경에서 unexpected 함수는 각 스레드에 대해 개별적으로 유지 관리됩니다. 각 새 스레드는 자체 unexpected 함수를 설치해야 합니다. 따라서 각 스레드는 자체 unexpected 처리를 담당합니다.
C++ 예외 처리의 현재 Microsoft 구현에서는 unexpected
가 기본적으로 terminate
를 호출하며 예외 처리 런타임 라이브러리를 통해서는 호출되지 않습니다. 호출 unexpected
에 terminate
대한 특별한 이점은 없습니다.
동적으로 연결된 모든 DLL 또는 EXE에 대한 단일 set_unexpected
처리기가 있습니다. 호출 set_unexpected
하는 경우 처리기가 다른 DLL 또는 EXE로 설정된 처리기를 대체할 수도 있습니다.
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
set_unexpected |
<eh.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
참고 항목
예외 처리 루틴
abort
_get_unexpected
set_terminate
terminate
unexpected