catch(…)在throw上工作吗?没有目标
Does catch (...) work on throw; with no object?
c++标准说,当没有挂起异常正在处理更高的堆栈时,下面的代码应该发生什么?
try {
throw;
} catch (...) {
cerr << "Caught exception." << endl;
}
没有对象的throw是否会被捕获?
源自2003年c++标准§15.1[exception .throw]/8:
如果当前没有处理异常,执行一个没有操作数的抛出表达式调用
terminate()
.
因此,在您的示例中,由于当前没有处理异常,因此不会抛出任何异常,而是调用terminate()
。由于terminate()
不返回,您的catch
块将永远不会进入。
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 导入库可以跨dll版本工作吗
- C++A*算法并不总是在路径中具有目标节点
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 基于树莓pi的tensorflow lite量化ssd目标检测
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 为测试目标创建具有不同源文件夹的文件
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 获取Cascades TouchEvent无法正常工作的目标
- 直接从.cpp文件编译代码可以工作.先制作目标文件,再进行链接,会导致函数的多重定义错误
- c++数据成员.目标:在构造函数中初始化,然后不管,将const工作在这里
- catch(…)在throw上工作吗?没有目标