C ++ 'da kural dışı durum işleme, dene / at / yakala ile sınırlıdır. Object Pascal'dan farklı olarak Java, C # ve Python, C ++ 11'de bile finally
yapı uygulanmadı.
"İstisna güvenli kodunu" tartışan çok fazla C ++ literatürü gördüm. Lippman, güvenli kod istisnasının, Primerinin kapsamının ötesinde, önemli ama gelişmiş, zor bir konu olduğunu yazmaktadır - bu, güvenli kodun C ++ için temel olmadığı anlamına gelir. Herb Sutter, istisnai C ++ 'sında konuya 10 bölüm ayırıyor!
Yine de bana, "istisna güvenli kodu" yazmaya çalışırken karşılaşılan sorunların birçoğu, eğer bir finally
yapı uygulanmışsa, programcının bir istisna durumunda bile programın geri yüklenebilmesini sağlamasına olanak tanıyan oldukça iyi bir şekilde çözülebileceğini düşünüyor. Kaynakların tahsisi noktasına ve potansiyel olarak sorunlu kodlara yakın, güvenli, istikrarlı, sızdırmaz bir duruma. Çok tecrübeli bir Delphi ve C # programcısı olarak kullanıyorum deniyorum .. Sonunda kodumda bu kadar çok programcı olduğu gibi kodları oldukça engelliyor.
C ++ 11'de uygulanan tüm 'çan ve ıslık' dikkate alındığında, 'nihayet' hala orada olmadığını bulmaktan şaşırmıştım.
Öyleyse, neden finally
yapı C ++ 'ta hiç uygulanmadı? Kavramak çok zor ve gelişmiş bir kavram değil ve programcının 'istisna güvenli kod' yazmasına yardımcı olmak için uzun bir yol kat ediyor.
finally
C ++ ' da hayır yok ve istisna yönetimi için hangi teknikleri kullanıyorsunuz?” Sorusunu sormak. bu site için geçerlidir. Bence mevcut cevaplar bunu iyi anlıyor. “C ++ tasarımcılarının finally
değerli olmama sebepleri var mı?” Konulu bir tartışmaya dönüştürülmesi. ve " finally
C ++ 'a eklenmeli mi?" ve soru hakkındaki yorumlar arasında tartışmaya devam etmek ve her cevap bu soru-cevap sitesinin modeline uymuyor.