Aracılığıyla paylaş


MSVC'de özel durum işleme

Özel durum, programın normal yürütme yolu boyunca devam etmesini engelleyen, büyük olasılıkla programın denetiminin dışında bir hata koşuludur. Nesne oluşturma, dosya girişi/çıkışı ve diğer modüllerden yapılan işlev çağrıları dahil olmak üzere bazı işlemler, programınız doğru çalışırken bile olası özel durum kaynaklarıdır. Sağlam kod özel durumları tahmin eder ve işler. Mantıksal hataları algılamak için özel durumlar yerine onayları kullanın (bkz . Onayları Kullanma).

Özel durum türleri

Microsoft C++ derleyicisi (MSVC) üç tür özel durum işlemeyi destekler:

  • C++ özel durum işleme

    Çoğu C++ programı için C++ özel durum işlemesini kullanmanız gerekir. Tür açısından güvenlidir ve yığın geri sarma sırasında nesne yıkıcılarının çağrılmasını sağlar.

  • Yapılandırılmış özel durum işleme

    Windows, yapılandırılmış özel durum işleme (SEH) olarak adlandırılan kendi özel durum mekanizmasını sağlar. C++ veya MFC programlama için önerilmez. SEH'i yalnızca MFC olmayan C programlarında kullanın.

  • MFC özel durumları

    Sürüm 3.0'dan bu yana MFC, C++ özel durumlarını kullanmıştır. Formdaki C++ özel durumlarına benzer eski özel durum işleme makrolarını hala destekler. MFC makrolarını ve C++ özel durumlarını karıştırma hakkında öneri için bkz . Özel Durumlar: MFC Makrolarını Kullanma ve C++ Özel Durumları.

C++ projesinde kullanılacak özel durum işleme modelini belirtmek için /EH derleyicisi seçeneğini kullanın. Visual Studio'daki yeni C++ projelerinde standart C++ özel durum işleme (/EHsc) varsayılan değerdir.

Özel durum işleme mekanizmalarını karıştırmanızı önermiyoruz. Örneğin, yapılandırılmış özel durum işleme ile C++ özel durumlarını kullanmayın. C++ özel durum işlemeyi kullanmak kodunuzu daha taşınabilir hale getirir ve herhangi bir türde özel durumları işlemenize olanak tanır. Yapılandırılmış özel durum işlemenin dezavantajları hakkında daha fazla bilgi için bkz . Yapılandırılmış Özel Durum İşleme.

Bu bölümde

Ayrıca bkz.

C++ Dil Başvurusu
x64 özel durum işleme
Özel Durum İşleme (C++/CLI ve C++/CX)