Udostępnij za pośrednictwem


set_unexpected (CRT)

Instaluje własnej funkcji rozwiązania do wywołania przez unexpected.

unexpected_function set_unexpected(
   unexpected_function unexpFunction 
);

Parametry

  • unexpFunction
    Wskaźnik do funkcji, która zapisu do zastąpienia unexpected funkcji.

Wartość zwracana

Zwraca wskaźnik do funkcji zakończenia poprzedniego zarejestrowanych przez _set_unexpected , dzięki czemu można później przywrócone poprzednie funkcji.Jeżeli nie ustawiono żadnej funkcji poprzedniej wartości zwracanej może służyć Aby przywrócić domyślne zachowanie; wartość ta może być NULL.

Uwagi

set_unexpected Działać instaluje unexpFunction jako funkcja wywoływana przez unexpected.unexpectednie jest używana w bieżącej implementacji obsługi wyjątków C++.unexpected_function Typ jest zdefiniowany w EH.H jako wskaźnik do zdefiniowanej przez użytkownika funkcji nieoczekiwane, unexpFunction , które zwraca void.Niestandardowe unexpFunction funkcja nie powinien powrócić do wywołującego.

typedef void ( *unexpected_function )( );

By default, unexpected calls terminate.To zachowanie domyślne można zmienić przez pisanie funkcji zakończenia i wywoływania set_unexpected o nazwie funkcji jako argumentu.unexpectedwywołuje funkcję ostatniego, biorąc pod uwagę jako argument do set_unexpected.

W odróżnieniu od funkcji niestandardowych Zakończenie zainstalowane przez wywołanie do set_terminate, może być wyjątek z poziomu unexpFunction.

W środowisku wielowątkowym nieoczekiwany funkcje są obsługiwane osobno dla każdego wątku.Każdy nowy wątek musi zainstalować ma własną funkcję nieoczekiwany.W ten sposób każdy wątek jest odpowiedzialny za obchodzenie nieoczekiwany.

W bieżącej implementacji Microsoft obsługi wyjątków C++ unexpected wywołania terminate domyślnie i nie był nigdy wywoływany przez run-time library obsługi wyjątków.Nie ma żadnych szczególną korzyść calling unexpected zamiast terminate.

Istnieje tylko jedno set_unexpected obsługi dla wszystkich dynamicznie połączonej biblioteki DLL lub exe; nawet jeśli zadzwonisz set_unexpected nasza procedura obsługi może być zastąpione innym lub zastępowanych programu obsługi ustawić przez inną bibliotekę DLL lub EXE.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

set_unexpected

<eh.h>

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywołać standardowych funkcji C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

Zobacz też

Informacje

Procedur obsługi wyjątków

abort

_get_unexpected

set_terminate (CRT)

terminate (CRT)

unexpected (CRT)