Aracılığıyla paylaş


<exception> tür tanımları

exception_ptr

Bir özel duruma bir işaretçi tanımlayan tür.

typedef unspecified exception_ptr;

Açıklamalar

Türü uygulamak exception_ptr için kullanılan belirtilmemiş bir iç sınıf.

exception_ptr Geçerli özel duruma veya kullanıcı tarafından belirtilen özel durumun örneğine başvurmak için bir nesne kullanın. Microsoft uygulamasında, özel durum bir EXCEPTION_RECORD yapısıyla temsil edilir. Her exception_ptr nesne, özel durumu temsil eden yapının bir kopyasını EXCEPTION_RECORD gösteren bir özel durum başvuru alanı içerir.

Bir değişken bildirdiğinizde, değişken herhangi bir exception_ptr özel durumla ilişkilendirilmemiştir. Diğer bir deyişle, özel durum başvuru alanı NULL olur. Böyle bir exception_ptr nesne null exception_ptr olarak adlandırılır.

current_exception Bir nesneye özel durum atamak için exception_ptr veya make_exception_ptr işlevini kullanın. Bir exception_ptr değişkene özel durum atadığınızda, değişkenin özel durum başvuru alanı özel durumun bir kopyasını gösterir. Özel durumu kopyalamak için yeterli bellek yoksa, özel durum başvuru alanı std::bad_alloc özel durumunun bir kopyasını gösterir. current_exception veya make_exception_ptr işlevi başka bir nedenle özel durumu kopyalayamazsa, işlev geçerli işlemden terminate çıkmak için CRT işlevini çağırır.

Adına rağmen, nesne exception_ptr kendisi bir işaretçi değildir. İşaretçi semantiğine uymaz ve işaretçi üyesi erişimi ( ->) veya dolaylı (*) işleçlerle kullanılamaz. Nesnenin exception_ptr genel veri üyesi veya üye işlevi yok.

Karşılaştırma:

İki exception_ptr nesneyi karşılaştırmak için equal ( ==) ve not-equal ( !=) işleçlerini kullanabilirsiniz. İşleçler, özel durumları temsil eden yapıların EXCEPTION_RECORD ikili değerini (bit deseni) karşılaştırmaz. Bunun yerine, işleçler nesnelerin özel durum başvuru alanındaki adresleri karşılaştırır exception_ptr . Sonuç olarak, null exception_ptr ve NULL değeri eşit olarak karşılaştırır.

terminate_handler

türü, olarak kullanıma uygun bir işlevin işaretçisini terminate_handleraçıklar.

typedef void (*terminate_handler)();

Açıklamalar

Sonlandırıcı işleyici olarak kullanım için bir işleve işaretçi tanımlayan tür.

Örnek

kullanımına terminate_handlerilişkin bir örnek için bkz. set_terminate.

unexpected_handler

türü, işlevin olarak unexpected_handlerkullanıma uygun bir işaretçisini açıklar.

typedef void (*unexpected_handler)();

Örnek

kullanımına unexpected_handlerilişkin bir örnek için bkz. set_unexpected.