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:
-
Ç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.
-
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
Özel durumlar ve hata işleme için modern C++ en iyi yöntemleri
Olağanüstü ve istisnai olmayan kodlar arasında arabirim oluşturma
Ayrıca bkz.
C++ Dil Başvurusu
x64 özel durum işleme
Özel Durum İşleme (C++/CLI ve C++/CX)
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin