<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_handler
açı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_handler
ilişkin bir örnek için bkz. set_terminate.
unexpected_handler
türü, işlevin olarak unexpected_handler
kullanıma uygun bir işaretçisini açıklar.
typedef void (*unexpected_handler)();
Örnek
kullanımına unexpected_handler
ilişkin bir örnek için bkz. set_unexpected.