std::bad_exception
来自cppreference.com
| 定义于头文件 <exception>
|
||
| class bad_exception; |
||
std::bad_exception 是 C++ 运行时在下列情况抛出的异常类型:
1) 若 std::exception_ptr 存储被捕捉异常的副本,且被 std::current_exception 捕捉的异常对象的复制构造函数抛出异常,则被捕捉的异常是
std::bad_exception 的一个实例。|
2) 若动态异常规定被违背且 std::unexpected 抛出或重抛仍然违背异常规定的异常,但异常规定允许 std::bad_exception ,则抛出 std::bad_exception 。
|
(C++17 前) |
目录 |
[编辑] 成员函数
构造 bad_exception 对象 (公开成员函数) | |
| 复制该对象 (公开成员函数) | |
| [虚] |
返回解释性字符串 (虚公开成员函数) |
继承自 std::exception
成员函数
| [虚] |
析构该异常对象 ( std::exception 的虚公开成员函数)
|
| [虚] |
返回解释性字符串 ( std::exception 的虚公开成员函数)
|
[编辑] 示例
运行此代码
#include <iostream> #include <exception> #include <stdexcept> void my_unexp() { throw; } void test() throw(std::bad_exception) { throw std::runtime_error("test"); } int main() { std::set_unexpected(my_unexp); try { test(); } catch(const std::bad_exception& e) { std::cerr << "Caught " << e.what() << '\n'; } }
输出:
Caught std::bad_exception


