Udostępnij za pośrednictwem


<exception>, definicje typów

exception_ptr

Typ, który opisuje wskaźnik do wyjątku.

typedef unspecified exception_ptr;

Uwagi

Nieokreślona klasa wewnętrzna używana do implementowania exception_ptr typu.

exception_ptr Użyj obiektu, aby odwołać się do bieżącego wyjątku lub wystąpienia wyjątku określonego przez użytkownika. W implementacji firmy Microsoft wyjątek jest reprezentowany przez strukturę EXCEPTION_RECORD . Każdy exception_ptr obiekt zawiera pole odwołania wyjątku EXCEPTION_RECORD wskazujące kopię struktury reprezentującej wyjątek.

Podczas deklarowania zmiennej zmienna exception_ptr nie jest skojarzona z żadnym wyjątkiem. To znaczy, że pole odwołania wyjątku ma wartość NULL. exception_ptr Taki obiekt jest nazywany exception_ptr o wartości null.

current_exception Użyj funkcji ormake_exception_ptr, aby przypisać wyjątek do exception_ptr obiektu. Po przypisaniu wyjątku do exception_ptr zmiennej pole odwołania wyjątku zmiennej wskazuje kopię wyjątku. Jeśli nie ma wystarczającej ilości pamięci do skopiowania wyjątku, pole odwołania wyjątku wskazuje kopię wyjątku std::bad_alloc . current_exception Jeśli funkcja or make_exception_ptr nie może skopiować wyjątku z innego powodu, funkcja wywołuje terminate funkcję CRT, aby zakończyć bieżący proces.

Pomimo nazwy exception_ptr obiekt nie jest wskaźnikiem. Nie jest on przestrzegany semantyki wskaźnika i nie może być używany z dostępem do elementu członkowskiego wskaźnika ( ->) lub pośrednim (*) operatorami. Obiekt exception_ptr nie ma publicznych składowych danych ani funkcji składowych.

Porównania:

Aby porównać dwa exception_ptr obiekty, można użyć operatorów równości ( ==) i nie równa się ( !=). Operatory nie porównują wartości binarnej (wzorca bitowego EXCEPTION_RECORD ) struktur reprezentujących wyjątki. Zamiast tego operatory porównują adresy w polu odwołania do wyjątków exception_ptr obiektów. W związku z tym wartość null exception_ptr i wartość NULL są porównywane jako równe.

terminate_handler

Typ opisuje wskaźnik do funkcji odpowiedniej do użycia jako terminate_handler.

typedef void (*terminate_handler)();

Uwagi

Typ opisuje wskaźnik do funkcji odpowiedni do użytku jako program obsługi zakończenia.

Przykład

Zobacz set_terminate , aby zapoznać się z przykładem użycia elementu terminate_handler.

unexpected_handler

Typ opisuje wskaźnik do funkcji odpowiedniej do użycia jako unexpected_handler.

typedef void (*unexpected_handler)();

Przykład

Zobacz set_unexpected , aby zapoznać się z przykładem użycia elementu unexpected_handler.