首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异常对象潜在破坏的最后一点。

异常对象潜在破坏的最后一点。
EN

Stack Overflow用户
提问于 2019-07-24 13:47:41
回答 2查看 113关注 0票数 0

英语不是我的母语。因此,有时阅读C++标准,我无法理解什么是写的。这里有一个这样的误会。

在C++ 20标准(14.1抛出异常)中,会写入

  1. ..。例外对象的潜在破坏点是:

(4.1) -在异常声明中声明的对象(如果有的话)被销毁后,以除重新抛出以外的任何方式退出异常的活动处理程序-在处理程序中声明;

(4.2) -当引用异常对象的std::exception_ptr类型的对象(17.9.6)在std::exception_ptr的析构函数返回之前被销毁。

然后

在异常对象的所有潜在破坏点中,有一个未指定的最后一个点,其中异常对象被销毁。所有其他的问题都发生在最后一次之前。

“毁灭的最后一点”是什么?它在标准中有什么意义?

似乎已经列出了例外对象的所有潜在破坏点。

EN

回答 2

Stack Overflow用户

发布于 2019-07-24 13:59:31

这只是一种滑稽而密集的表达方式:

允许异常对象在以下几点死亡:. 其中一个点将是最后一个点(duh),在这一点上,异常将实际死亡。 实现可以随意排序这些点,只要它能够确定哪一个是最后一个在正确的时间杀死异常。

换句话说,它做了正确的事情,™。

票数 2
EN

Stack Overflow用户

发布于 2019-07-24 14:38:28

可能有多个std::exception_ptr对象引用在多个线程中使用和销毁的相同异常。标准中没有指定是哪个std::exception_ptr析构函数调用破坏了异常,但保证所有其他析构函数调用都发生在此之前。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57184495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档