Tutte le eccezioni di boost derivano da std :: exception? Se no, derivano tutti da qualche classe base di eccezione?eccezioni boost
risposta
Secondo the documentationboost::exception
non eredita std::exception
.
Il FAQ spiega perché.
Tuttavia, this page spiega come utilizzare correttamente le eccezioni Boost.
Credo di si. Non riesco a pensare ad una libreria boost che lancia qualcosa di non-std :: basato su eccezioni.
Una libreria "buon cittadino Boost" dovrebbe utilizzare boost::throw_exception
per supportare le configurazioni in cui la gestione delle eccezioni è disabilitata.
La funzione boost::throw_exception
richiede che il tipo di eccezione passata deriva pubblicamente da std::exception
(dalla versione 1.37.0 o giù di lì boost::throw_exception
emetterà un errore di compilazione se tale condizione non è soddisfatta.) Inoltre e per impostazione predefinita, eccezioni emessi utilizzando boost::throw_exception
derivi da boost::exception
.
Tuttavia, non è necessario per le librerie Boost generare eccezioni tramite boost:throw_exception
o derivare da std::exception
.
- 1. È possibile disabilitare Eccezioni e RTTI nelle librerie Boost?
- 2. Eccezioni Java Eccezioni C++
- 3. BOOST_NO_EXCEPTIONS garantisce la compatibilità con le eccezioni?
- 4. boost :: tokenizer vs boost :: split
- 5. boost :: python Esporta eccezione personalizzata
- 6. boost :: asio :: async_write() rispetto boost :: asio :: write()
- 7. boost :: lock_guard vs boost :: mutex :: scoped_lock
- 8. boost :: TIME_UTC (_) con diverse versioni boost
- 9. boost pool_alloc
- 10. Haskell "eccezioni"
- 11. Intercettare eccezioni
- 12. Eccezioni verdi?
- 13. Le eccezioni non vengono rilevate nel programma GCC
- 14. Come usare copy_file in boost :: filesystem?
- 15. Cosa è boost :: program_options :: notify() per?
- 16. boost :: exception_detail :: clone_impl <boost :: exception_detail :: error_info_injector <boost :: thread_resource_error>>
- 17. Boost, memoria condivisa e vettori
- 18. C++ BOOST riferimento undefined a `boost :: filesystem :: detail :: copy_file
- 19. Errore di collegamento boost per boost filesystem, perché?
- 20. Come eliminare l'oggetto boost boost quando termina il thread stesso?
- 21. Avvolgere le eccezioni con le eccezioni del runtime con un'annotazione
- 22. Devo liberare/distruggere le eccezioni dopo la gestione delle eccezioni?
- 23. Java, eccezioni specifiche della classe rispetto alle eccezioni standard
- 24. Le eccezioni possono essere "duplicate" tramite puntatori di eccezioni?
- 25. Aggiornamento usando Boost property_tree
- 26. boost shared_from_this <>()
- 27. BOOST: ricorsivo shared_mutex?
- 28. Installazione libreria C++ Boost
- 29. Boost Thread Cancel
- 30. come boost :: ~ shared_ptr funziona?
Boost.Exception è un framework per eccezioni memorizzabili e riscrivibili. Non vengono lanciati direttamente da alcuna libreria di boost. Le FAQ http://www.boost.org/doc/libs/1_39_0/libs/exception/doc/frequently_asked_questions.html spiegano perché 'boost :: exception' non eredita da' std :: exception'. –