gpt4 book ai didi

c++ - 关于 C++ 异常处理/抛出的说明

转载 作者:太空宇宙 更新时间:2023-11-04 14:42:51 24 4
gpt4 key购买 nike

考虑以下代码:

try {
int *i = NULL;
i[100] = 20;
catch (...) {
std::cout << "Exception Caught";
}

运行这段代码时,它崩溃了(很明显,访问了一个 NULL 指针)。虽然,在 Debug模式下,Visual Studio 声明未捕获异常,关于写访问冲突..也是可以理解的。

我以为会在这里捕获异常,但没有。
我的结论是不会抛出异常。
那么为什么 VS 会警告未捕获的异常?

当我想保护自己不受另一个程序员代码的影响,并想用 try-catch 包装对他的函数的调用时,这个问题就开始了,假设他可能正在做一些访问冲突。但是,如果我只能捕获明确抛出的异常,那我就完蛋了。我可能有的唯一其他解释是,这是因为某种项目或编译器配置。我在一个新的 C++ 控制台应用程序中运行它,它是 VS2005。

谢谢

最佳答案

为了让 catch(...) 捕获所谓的结构化异常,您需要在项目设置中启用它。

关于c++ - 关于 C++ 异常处理/抛出的说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3227417/

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