C++程序的主函数中的所有函数都是错误调用的吗?

C++程序的主函数中的所有函数都是错误调用的吗?,c++,C++,假设我有一个从main执行voidfoo的程序。如果foo有一个向量超出范围异常,会发生什么。然后在主foo之后,有一个名为bar的函数将执行bar吗 void main() { foo() //exception in this function bar() //will bar be called? } 假设FO没有手动构造的系统退出调用。< P>一个未被触发的C++异常将终止程序。通常使用堆栈跟踪,但这取决于实现 所以,在您的示例中,永远不会调用bar 更新:在某些情况下,优化器可以内联

假设我有一个从main执行voidfoo的程序。如果foo有一个向量超出范围异常,会发生什么。然后在主foo之后,有一个名为bar的函数将执行bar吗

void main() {
foo() //exception in this function
bar() //will bar be called?
}

假设FO没有手动构造的系统退出调用。

< P>一个未被触发的C++异常将终止程序。通常使用堆栈跟踪,但这取决于实现

所以,在您的示例中,永远不会调用bar


更新:在某些情况下,优化器可以内联这两个函数,并将一些代码从条形图移到main的顶部。但是,您只能在调试器中看到这一点,因为任何有副作用的东西都不能像那样移动。

如果没有异常处理程序,应用程序将终止。您尝试过吗?作为C++编译器吗?你们读了吗?IDK关于所有其他异常的内容,但由于操作系统不允许你们访问内存,所以抛出了越界异常,并且那个异常一定会终止程序。