Yönetilmeyen C++, Visual Studio 2008 veya daha yeni bir proje oluşturuyorsam, hangi istisna işleme modeli ile gitmek istiyorum?Visual C++ Yönetilmeyen Kod: C++ istisnaları için/EHa veya/EHsc kullanın?
Ben az verimli kodunda olduğu/EHA opsiyon sonuçlarını anlamak ve ayrıca sağ, SEH durumları yakalar?
Bu yüzden, bu seçeneği açıkça görüyorum ve normalde/EHsc ile gidiyordum, böylece yalnızca erişimde bulunan C++ istisnalarını ve erişim ihlallerini ve diğer yapılandırılmış yürütmeleri yakalamamı yakalarım, (...) işleyicileri. Kodumda bir erişim ihlali varsa, bir yakalama (...) {} ile maskelenmesini istemiyorum. catch (...) diğerleri ile
Ben kodu {} hiçbir şey yapmamak ve hatta bana gerçekten kötü bir fikir gibi görünen bir erişim ihlali söz konusuysa, bunu yapmak istiyorum. Kötü kodlama nedeniyle bir hata varsa, parmaklarınızı kulağınıza yapıştırmak ve yüksek sesle "La la la la la!" böylece program çökmesine sahip olmak zorunda değilsiniz? Aslında, kod artık bir kodlama hatası nedeniyle kötü durumda ise, kodun devam etmesini gerçekten istiyor musunuz?
Genel düşüncem/EHa daha büyük/daha yavaş kodlar yaratıyor ve programcıların ölümcül bir hata varsa, tanımlanamayan bir durumda çalışmaya devam edecekleri yazma kodundan kurtulmalarını sağlıyor.
BTW, biz çoğunlukla yazarken ne olduğu uygulamalar ve hizmet kodu bahsediyorum. Düşük seviye olmayan aygıt sürücüleri veya bunun gibi bir şey.
Lütfen düşüncelerinize dikkat edin.
Hiçbir durumda erişim ihlallerini yakalamaya çalışmamalısınız. –
Bu benim anlayışım ... ama insanlar yakaladım (...) {} ve eğer/EHa seçildiyse, o zaman bu inanıyorum erişim ihlalini gömecektir. Yakalanması gereken bir şey var (...) {cleanup_stuff; atmak; } Ancak bu durumda bile, yakalanan bir erişim ihlali ise, cleanup_stuff işini yapacak olduğundan emin misiniz? Kötü bir durumdasınız, bu yüzden muhtemelen programın orada çöküşün en iyisi olduğunu düşünürdüm. – MarkS
İstemcinde/sunucu sisteminde çalışıyorum, eğer sunucuda bir istisna varsa (ideal olarak, erişim ihlali de dahil olmak üzere herhangi bir istisna), sunucu zincirinin çökmesine izin vermeden önce istemciye istisna mesajını göndermek istiyorum. Aksi halde, sunucu yanıt vermiyor. –