Aracılığıyla paylaş


Onaylama ve Kullanıcının Sağladığı İletiler (C++)

C++ dili, uygulamanızda hata ayıklamanıza yardımcı olan üç hata işleme mekanizmasını destekler: #error yönergesi, static_assert anahtar sözcüğü ve onay Makro, _assert _wassert makro. Üç mekanizma da hata iletileri oluşturur ve ikisi de yazılım onaylarını test eder. Yazılım onayı, programınızın belirli bir noktasında doğru olmasını beklediğiniz bir koşulu belirtir. Derleme zamanı onaylama işlemi başarısız olursa, derleyici bir tanılama iletisi ve derleme hatası döndürür. Çalışma zamanı onaylama işlemi başarısız olursa, işletim sistemi bir tanılama iletisi oluşturur ve uygulamanızı kapatır.

Açıklamalar

Uygulamanızın ömrü bir ön işleme, derleme ve çalışma süresi aşamasından oluşur. Her hata işleme mekanizması, bu aşamalardan biri sırasında kullanılabilen hata ayıklama bilgilerine erişir. Etkili bir şekilde hata ayıklamak için bu aşama hakkında uygun bilgileri sağlayan mekanizmayı seçin:

  • #error yönergesi ön işleme zamanında etkindir. Koşulsuz olarak kullanıcı tarafından belirtilen bir ileti yayar ve derlemenin bir hatayla başarısız olmasına neden olur. İleti, önişlemci yönergeleri tarafından işlenen metin içerebilir, ancak sonuçta elde edilen ifadeler değerlendirilmez.

  • derleme zamanında static_assert bildirimi etkindir. Kullanıcı tarafından belirtilen ve Boole değerine dönüştürülebilen bir tam sayı ifadesiyle temsil edilen yazılım onaylarını test eder. İfade sıfır (false) olarak değerlendirilirse, derleyici kullanıcı tarafından belirtilen iletiyi görüntüler ve derleme bir hatayla başarısız olur.

    Şablon static_assert bağımsız değişkenleri kullanıcı tarafından belirtilen ifadeye eklenebildiği için, bildirim özellikle şablon hatalarını ayıklamak için kullanışlıdır.

  • Onay Makrosu, _assert _wassert makro çalışma zamanında etkindir. Kullanıcı tarafından belirtilen bir ifadeyi değerlendirir ve sonuç sıfır olursa sistem bir tanılama iletisi düzenler ve uygulamanızı kapatır. _ASSERT ve _ASSERTE gibi diğer birçok makro bu makroya benzer ancak farklı sistem tanımlı veya kullanıcı tanımlı tanılama iletileri yayımlar.

Ayrıca bkz.

#error Yönergesi (C/C++)
assert Makrosu, _assert, _wassert
_ASSERT, _ASSERTE, _ASSERT_EXPR Makroları
static_assert
_STATIC_ASSERT Makrosu
Şablonlar