Kodunuzda std :: logic_error istisnasını kullanırsanız, hangi durumda kullanırsınız? domain_error
, invalid_argument
, length_error
, out_of_range
:C++: std :: logic_error istisnasının uygun kullanımı nedir?
10
A
cevap
5
logic_error
Bu istisnalara temelidir.
Bunlar tüm mantıksal hatalardır: Girişle ilgili yanlış olan bir şey çıktının mantıksız olacağı şekilde yanlıştır. Bu yüzden, doğrudan, onu doğrudan kullanmanıza gerek olmadığını söylüyorum, çünkü bu dört düşünceyi düşündüğüm herhangi bir mantık hatası. Ama bunlar size kategorinin ne olduğu hakkında bir fikir veriyor.
2
GMan daha önce işaret ettiği gibi, öncelikli olarak diğer istisna sınıfları için bir temel. Temel olarak bir iddia olan bir şey için doğrudan kullanmayı düşünebilirsiniz. Örneğin. Bazı kodlar, yürütmeden önce belirli bir nesneye dayanıyorsa, yürütülürse ve bu nesne henüz oluşturulmamışsa, logic_error
(bir türev yerine) atması uygun olabilir.
İlgili konular
- 1. std :: this_thread :: getiri() kullanımı?
- 2. Yakut-Uygun Kullanımı
- 3. Nesnelerin uygun kullanımı
- 4. RuntimeException'ın uygun kullanımı?
- 5. C dilinde _start() kullanımı nedir?
- 6. Haskell'de UserInterrupt istisnasının işlenmesi
- 7. AMQP kullanımı ne zaman uygun?
- 8. C# dilinde #pragma uyarı kullanımı nedir?
- 9. C++ 11 Uygun Yapı Başlatma
- 10. std :: valarray'ın geleceği nedir?
- 11. C++ 'da std bind kullanımı argümanlı (string) işlevler için
- 12. C++ iomanip kitaplığının etkin kullanımı
- 13. "const" kullanımı nedir?
- 14. C++ - STD ::
- 15. C++ std
- 16. bir C++ std :: string
- 17. std :: uninitialized_copy & std :: copy arasındaki fark nedir?
- 18. Eclipse ile C++ Kullanımı
- 19. C++ std :: unique_ptr std içinde saklanır :: harita silinen fonksiyonun kullanımı oluşturdu
- 20. views.py dosyasında django.contrib.auth.models.User kullanımı uygun mu?
- 21. Std :: safe_string nedir?
- 22. C++ tensorflow içinde kullanımı
- 23. C++ statik olmayan veri üyesinin geçersiz kullanımı
- 24. Feholdexcept vb. Kullanımı nedir?
- 25. mongo.lock dosyasının kullanımı nedir?
- 26. Entitlements.plist dosyasının kullanımı nedir?
- 27. SingletonList kullanımı nedir?
- 28. LOCAL_MODULE_TAGS kullanımı nedir?
- 29. Android'de SQLiteDatabase.CursorFactory kullanımı nedir?
- 30. Android'de BaseColumns kullanımı nedir
Kodumuzda hata yakaladığımızda logic_error istisnasını atmak uygun olur mu? Örneğin. assert() yerine kullanın. – sivabudh
Muhtemelen hayır. 'assert', * programcı hataları içindir. Bir şey kontrol etmek null, vb., Kullanıcı girişine bakılmaksızın * gerçekleşmemesi gereken şeylerdir. Tersine, istisnalar, bir süre içinde gerçekleşmesi beklenen ve yakalanıp işlenen şeyler içindir. – GManNickG
@GMan: Çalışma zamanında oluşabilecek hataları yakalamak için iyi ol'umuzu kullanmak yerine hangi istisnayı kullanabilirim? Bence assert harika, ama zarif çıkışlar için onları işlemek için istisna kullanmak isterim. – sivabudh