std::bad_exception
来自cppreference.com
![]() |
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
定义于头文件 <exception>
|
||
class bad_exception; |
||
std::bad_exception
是在下列情况下由C + +运行时抛出的异常的类型原文:
std::bad_exception
is the type of the exception thrown by the C++ runtime in the following situations:1)
如果动态异常规范被侵犯,std::unexpected抛出或重新抛出一个例外,仍然违反的异常规范,但异常规范允许
std::bad_exception
,std::bad_exception
被抛出.原文:
If a 动态异常规范 is violated and std::unexpected throws or rethrows an exception that still violates the exception specification, but the exception specification allows
std::bad_exception
, std::bad_exception
is thrown.2)
如果std::exception_ptr副本存储捕获的异常的current_exception捕获的异常对象的拷贝构造函数抛出一个异常,捕获的异常的一个实例
std::bad_exception
..原文:
If std::exception_ptr stores a copy of the caught exception and if the copy constructor of the exception object caught by current_exception throws an exception, the captured exception is an instance of
std::bad_exception
.目录 |
[编辑] 成员函数
构建 bad_exception 对象(公共成员函数) | |
复制的对象 (公共成员函数) | |
[虚] |
返回的解释的字符串 (公有虚成员函数) |
继承自 std::exception
Member functions
[虚] |
析构该异常对象 ( 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