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