std::bad_exception
来自 cppreference.cn
定义于头文件 <exception> |
||
class bad_exception; |
||
std::bad_exception
是 C++ 运行时在以下情况中抛出的异常类型
|
(自 C++11 起) |
|
(直到 C++17) |
继承关系图
|
(自 C++26 起) |
内容 |
[编辑] 成员函数
构造 bad_exception 对象(公有成员函数) | |
复制对象 (公有成员函数) | |
[虚函数] |
返回解释性字符串 (虚公有成员函数) |
继承自 std::exception
成员函数
[虚函数] |
销毁异常对象 ( std::exception 的虚公有成员函数) |
[虚函数] |
返回解释性字符串 ( std::exception 的虚公有成员函数) |
[编辑] 注释
特性测试宏 | 值 | 标准 | 特性 |
---|---|---|---|
__cpp_lib_constexpr_exceptions |
202411L |
(C++26) | 异常类型的 constexpr |
[编辑] 示例
仅在 C++14 或更早模式下编译(可能发出警告)。
运行此代码
#include <exception> #include <iostream> #include <stdexcept> void my_unexp() { throw; } void test() throw(std::bad_exception) // Dynamic exception specifications // are deprecated in C++11 { throw std::runtime_error("test"); } int main() { std::set_unexpected(my_unexp); // Deprecated in C++11, removed in C++17 try { test(); } catch (const std::bad_exception& e) { std::cerr << "Caught " << e.what() << '\n'; } }
可能的输出
Caught std::bad_exception