yeni std atış::özel durum vs atmak std::özel durum
bazı kod bakarken rastladım:
throw /*-->*/new std::exception ("//...
ve ben her zaman new
burada kullanmamalısın/ihtiyacın olmadığını düşündüm.
DoÄŸru ÅŸekilde, yani orada herhangi bir fark ise her iki OK, ne var?
BTW "grepping PowerShell libs boost ile" asla throw new
kullanın. ederken gördüğüm kadarıyla
P. S. ayrıca throw gcnew
kullanan bazı CLİ kodu buldum. TAMAM mı?
CEVAP
Ve özel durum yakalamak için geleneksel bir özel durum nesnesi atmak ve referans (genellikle const
referans) ile onu yakalamak. C dili derleyicisi özel durum nesnesi oluşturmak ve düzgün uygun bir zamanda temizlemek için gerekli kodu oluşturmak için gereklidir.
Dinamik olarak ayrılan bir nesneye bir işaretçi atmak hiç iyi bir fikir değil. Özel durumlar hata koşullar karşısında daha sağlam kod yazmak için izin gerekiyor. Eğer bir istisna atar nesne geleneksel şekilde olmak emin olup olmadığını tarafından yakalanan bir catch tümcesi adlandırma doğru yazın tarafından catch (...)
, sonra yeniden atılmış veya yok olur doğru en uygun zaman. (Tek istisna, eğer olmak hiç yakalanıyor ama bu nereden bakarsan bak düzeltilemez bir durum.)
Eğer atmak bir işaretçi için bir dinamik olarak ayrılan nesne var olduğundan emin olun, ne olursa olsun çağrı yığını gibi görünüyor, bu noktada ister at özel bir catch bloğu bu isimler doğru işaretçi türü vardır ve en uygun delete
Ara. Size özel asla bu doğru dışında bir şey yapamaz o zaman başka bir catch bloğu yakalandı yeniden atar özel durum bloğu sürece catch (...)
tarafından yakalandı gerekir.
Etkili bir şekilde, daha sağlam kod yazmak gerektiğini istisna işleme özelliği çektiğiniz anlamına gelir ve çok zor durumlarda doğru kod yazmak için yapılmış. Bu neredeyse imkansız kütüphane kod olarak hareket etmek için bu özelliği bekliyor olmayacak istemci kodu için olacak bu sorunu bir kenara bırakarak.
ve yeni bir özel Durum atmak arasındak...
((yeni nesne) kilit -- Kargo kültü ya ...
jQuery Ajax hata işleme, Haritayı özel...
Node.js En İyi Özel Durum İşleme Uygul...
Nasıl bir özel durum olduğunu doğrulam...