Standart C++ kütüphanesinde bulunan istisna sınıfları nelerdir ve bunlar ne için kullanılmalıdır? Birkaç yeni C++ 11 istisnası olduğunu biliyorum, ama ne oldukları ya da nerede olduklarından emin değilim.Standart istisna sınıfları C++ kitaplığında
cevap
std::exception <exception> interface (debatable if you should catch this)
std::bad_alloc <new> failure to allocate storage
std::bad_array_new_length <new> invalid array length
std::bad_cast <typeinfo> execution of an invalid dynamic-cast
std::bad_exception <exception> signifies an incorrect exception was thrown
std::bad_function_call <functional> thrown by "null" std::function
std::bad_typeid <typeinfo> using typeinfo on a null pointer
std::bad_weak_ptr <memory> constructing a shared_ptr from a bad weak_ptr
std::logic_error <stdexcept> errors detectable before the program executes
std::domain_error <stdexcept> parameter outside the valid range
std::future_error <future> violated a std::promise/std::future condition
std::invalid_argument <stdexcept> invalid argument
std::length_error <stdexcept> length exceeds its maximum allowable size
std::out_of_range <stdexcept> argument value not in its expected range
std::runtime_error <stdexcept> errors detectable when the program executes
std::overflow_error <stdexcept> arithmetic overflow error.
std::underflow_error <stdexcept> arithmetic underflow error.
std::range_error <stdexcept> range errors in internal computations
std::regex_error <regex> errors from the regular expression library.
std::system_error <system_error> from operating system or other C API
std::ios_base::failure <ios> Input or output error
Kaynak: logic_error
ve runtime_error
türetilen Uygulamada http://en.cppreference.com/w/cpp/error/exception
, çoğu istisnalar özel istisnalar. Bunların ihmal edilmesi değil, birçok istisna da alan adına özeldir. Bir özel durumun neyin yanlış gittiğini ve 'u attıran'u aklından çıkardığını unutmayın. (Hayır "MyProgramException" ler)
onlar kötü exampled msdn bu site
Exception Description
===================================
std::exception An exception and parent class of all the standard C++ exceptions.
std::bad_alloc This can be thrown by new.
std::bad_cast This can be thrown by dynamic_cast.
std::bad_exception This is useful device to handle unexpected exceptions in a C++ program
std::bad_typeid This can be thrown by typeid.
std::logic_error An exception that theoretically can be detected by reading the code.
std::domain_error This is an exception thrown when a mathematically invalid domain is used
std::invalid_argument This is thrown due to invalid arguments.
std::length_error This is thrown when a too big std::string is created
std::out_of_range This can be thrown by the at method from for example a std::vector and std::bitset<>::operator[]().
std::runtime_error An exception that theoretically can not be detected by reading the code.
std::overflow_error This is thrown if a mathematical overflow occurs.
std::range_error This is occured when you try to store a value which is out of range.
std::underflow_error This is thrown if a mathematical underflow occurs.
Bu iyi, ancak C++ 11 istisnalarını kaçırıyor ve hangi istisnaların hangi başlıklarda olduğunu göstermiyor. –
@MooingDuck Sorunuz "C++", "C++ 11" olarak etiketlenmiş ve hepsi aynı "
[ta ++ 'da bulunur. En son sürüm ne olursa olsun, C++ 11 ve C++ 03 ise Bu belirli sürümlerle ilgili sorular] (http://meta.stackexchange.com/questions/112641/when-did-the-c-tag-start-to-imply-c11-by-default). sorum, belirli bir sürümle ilgili değil, sadece C++ ile ilgili en güncel bilgiler. Her iki durumda da, C++ 11'den bahsetmek için soruyu düzenleyeceğim. Ayrıca, bu hataların tümü, http://ideone.com/uqM6h –
- 1. C veya C++ standart kitaplığında mantıksal (boolean) bir XOR işlevi var mı?
- 2. Kullanılmayan sınıfları Google Play Hizmetleri kitaplığında kaldırmak için Proguard'ı kullanma
- 3. VS2017 .Net Standart kitaplığında iç yöntemleri test eden birim
- 4. Standart istisna hiyerarşisinin yapısı için nedenler
- 5. Standart istisna/hata formunun değiştirilmesi .net
- 6. C i aşağıdaki sınıfları
- 7. yönetilen C++ sınıfları kazasında
- 8. C# - türetilmiş sınıfları
- 9. Intel standart kitaplığı (C++)
- 10. yayılan C++ istisna Cython için - piton istisna
- 11. MATLAB MEX kitaplığında, MATLAB'ın sürüm
- 12. Bazı standart kütüphane sınıfları için clang ++ ile Linker hatası
- 13. vaka tablolara Elipses Are standart C/C++
- 14. C#: Dize, standart tarih formatı
- 15. Linux'ta C++ olmadan İstisna İşlemi C++
- 16. İstisna
- 17. Xamarin PCL kitaplığında GetConstructors
- 18. sınıfları
- 19. System.Design Sınıf Kitaplığında başvuruda bulunamaz?
- 20. Sınıf kitaplığında bir web referansı tüketme (C# /. NET)
- 21. iostream kitaplığında kendi işlev bildirimimizi C++ olarak nasıl ekleyebilirim?
- 22. iç içe enum C# ve sınıfları
- 23. C++ tic tac toe sınıfları kullanarak
- 24. C# Arkadaş sınıfları ve OOP Kompozisyonu
- 25. C# Buddy Sınıfları/Meta Verileri ve Yansıma
- 26. Standart olmayan İngilizce karakterleri C# adında kullanmak kötü bir uygulamadır?
- 27. object-c - Objective-C .h dosyasında Swift sınıfları görünmez
- 28. İstisna
- 29. UNO sınıfları
- 30. C++ type_traits standart yolundan koşulların nasıl birleştirileceği
'bad_function_call, domain_error ve future_error' bakın ve :( –
' bad_function_call' atılır açıklarken varsayılan olarak yapılandırılmış bir std :: function nesnesine sahip olursunuz ve sardığı işlevi çağırmaya çalışırsınız. Sarılmış bir işlev olmadığından, arayacak hiçbir şey yoktur. std :: işlevini çağırmaya çalıştığınızda –
'bad_function_call 'atılır Bu hazır değil (aka, varsayılan const nullptr yoluyla açık veya açık bir şekilde temizlenir). 'future_error',' promise' ve 'future' için işlevlerin birçok ön koşulundan birini ihlal ettiğinizde kullanılır. Ve 'domain_error', bir işlevin girdinin bu işlev için geçerli aralığın dışında olduğu durumlar için (teoride) 'dir (std :: sqrt' için negatif bir sayı gibi). –