gpt4 book ai didi

c++ - 哪个系统软件负责运行时检查

转载 作者:太空狗 更新时间:2023-10-29 23:49:56 24 4
gpt4 key购买 nike

我认为这听起来是一个普遍的简单问题,但我在阅读 C++ 异常规范时提出了这个问题。在其中一本书中说,C++11 现在有一个关键字“noexcept”,这意味着当函数用函数头声明时不会抛出异常,并且说这个关键字存在的原因是 C++ 异常规范是在运行时而不是编译时检查的,因此它们不向程序员提供所有异常都已处理的保证。 因此它们得出两种情况:一个函数会抛出异常,或者我们是否清楚它永远不会抛出,然后使用 noexcept 进行优化(希望如此)

void foo() noexcept();

这是主要问题。哪个系统软件执行那些运行时检查(我希望不是编译器/链接器/加载器)以及哪个系统软件负责在运行时分配内存(动态内存分配),而这些都没有被编译器和其他人处理?

最佳答案

正如您所说,没有事件的“系统软件”检查异常;相反,抛出异常是程序本身采取的行动。程序将异常传递回堆栈,直到异常与异常处理程序匹配。

如果没有匹配的异常处理程序,则异常会被 Bootstrap 代码捕获(main 不是典型程序的实际入口点,而是运行时将控制权交给程序员的地方)并且程序终止。

关于c++ - 哪个系统软件负责运行时检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35209091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com