Exception Güvenliği
C++ içinde exception güvenliği kavramını, kullanım sınırlarını ve güvenilir uygulama biçimini öğrenin.
Exception Güvenliği, C++ ile güvenilir sistem kodu çalışırken hata durumlarını denetlenebilir bir akışa dönüştürmek için kullanılan yaklaşımı açıklar. Hata modeli başarısızlığın nerede yakalanacağını, hangi bağlamla taşınacağını ve kullanıcıya nasıl sunulacağını belirler.
Hataları sessizce yutmak yerine özgün nedeni korumak, yalnızca kurtarılabilir noktada yakalamak ve kaynak temizliğini garanti etmek gerekir. Girdinin biçimini ve geçerliliğini sınırda denetlemek, iç katmanların daha sade kalmasını sağlar. Aşağıdaki örnek, konuyu küçük ve izlenebilir bir akış içinde gösterir.
Yaygın hata ve doğru yaklaşım
Kavramı her durumda uygulanacak bir kural gibi kullanmak gereksiz karmaşıklık üretir. Önce problemin sınırını belirleyin, ardından en küçük yeterli yapıyı seçin.
Sonuç
Exception Güvenliği, doğru sınırlar ve açık bir sözleşmeyle kullanıldığında C++ kodunun güvenilirliğini artırır. Önce doğruluğu kurun; ölçüm göstermeden karmaşık optimizasyona yönelmeyin.
#include <fstream>
#include <stdexcept>
#include <string>
std::string read_title(const std::string& path) {
std::ifstream input{path};
if (!input) throw std::runtime_error{"Dosya açılamadı"};
std::string title;
std::getline(input, title);
return title;
}