std::bad_exception
Материал из cppreference.com
Определено в заголовочном файле <exception> | ||
class bad_exception; | ||
std::bad_exception
это тип исключения, генерируемого средой выполнения C++ в следующих ситуациях:
| (начиная с C++11) |
| (до C++17) |
Диаграмма наследования
Содержание |
[править]Функции-элементы
создаёт объект bad_exception (public функция-элемент) | |
копирует объект (public функция-элемент) | |
[virtual] | возвращает пояснительную строку (virtual public функция-элемент) |
Унаследован от std::exception
Функции-элементы
[virtual] | уничтожает объект исключения (virtual public of std::exception функция-элемент) |
[virtual] | возвращает поясняющую строку (virtual public of std::exception функция-элемент) |
[править]Пример
Компилируется только в режиме C++14 (или более ранней версии).
Запустить этот код
#include <iostream>#include <exception>#include <stdexcept> void my_unexp(){throw;} // Спецификации динамических исключений устарели в C++11void test()throw(std::bad_exception){throwstd::runtime_error("тест");} int main(){// Устарело в C++11, удалено в C++17std::set_unexpected(my_unexp);try{ test();}catch(const std::bad_exception& e){std::cerr<<"Поймано "<< e.what()<<'\n';}}
Возможный вывод:
Поймано std::bad_exception